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