sql >> Databáze >  >> RDS >> PostgreSQL

Funkce GREATEST() v PostgreSQL

V PostgreSQL, GREATEST() funkce vrací největší (nebo největší) hodnotu ze seznamu libovolného počtu výrazů.

GREATEST() funkce není součástí standardu SQL, ale je to oblíbené rozšíření, které podporuje mnoho hlavních RDBMS.

Syntaxe

GREATEST(value [, ...])

To znamená, že funkci můžeme předat jednu nebo více hodnot.

Příklad

Zde je jednoduchý příklad k demonstraci:

SELECT GREATEST( 3, 15, 7 );

Výsledek:

15

Řetězce

Zde je příklad, kde jsou všechny argumenty řetězce:

SELECT GREATEST( 'Bear', 'Zebra', 'Ant' );

Výsledek:

Zebra

Data

Zde je srovnání datových řetězců:

SELECT GREATEST(date '2027-01-01', date '2027-12-31');

Výsledek:

2027-12-31

Běžný datový typ

Všechny výrazy musí být převoditelné na běžný datový typ. Výsledek použije tento typ.

Pokud výrazy nelze převést na běžný datový typ, dojde k chybě:

SELECT GREATEST( 3, 'Fifteen', 7 );

Výsledek:

ERROR:  invalid input syntax for type integer: "Fifteen"
LINE 1: SELECT GREATEST( 3, 'Fifteen', 7 );
                            ^

Nulové hodnoty

Hodnoty Null jsou ignorovány, pokud nejsou všechny výrazy null . Pokud jsou všechny výrazy null a poté null je vráceno:

\pset null '<null>'
SELECT 
    GREATEST( 3, null, 7 ),
    GREATEST( null, null, null );

Výsledek:

 greatest | greatest 
----------+----------
        7 | <null>

Ve výchozím nastavení vrací psql prázdný řetězec na hodnotách null. V prvním řádku v tomto příkladu nastavím hodnoty null na výstup <null> takže pro nás bude snazší vidět nulový výsledek.

Chybí argumenty

Volání GREATEST() bez jakýchkoli argumentů vede k chybě:

SELECT GREATEST();

Výsledek:

ERROR:  syntax error at or near ")"
LINE 1: SELECT GREATEST();
                        ^

Jeden argument však můžeme předat bez chyby:

SELECT GREATEST( 1 );

Výsledek:

1

  1. Chyba při převodu XML ze sloupce CLOB na sloupec XMLType

  2. T-SQL:Výběr sloupce na základě MAX (jiný sloupec)

  3. Jak mohu vybrat celý řádek, který má největší ID v tabulce?

  4. Tipy a triky pro implementaci řízení přístupu k databázi na základě rolí pro MariaDB