V PostgreSQL LEAST()
funkce vrací nejmenší hodnotu ze seznamu libovolného počtu výrazů.
LEAST()
funkce není součástí standardu SQL, ale je to oblíbené rozšíření, které podporuje mnoho hlavních RDBMS.
Syntaxe
LEAST(value [, ...])
To v podstatě znamená, že funkci můžeme předat jednu nebo více hodnot.
Příklad
Zde je jednoduchý příklad k demonstraci:
SELECT LEAST( 5, 2, 9 );
Výsledek:
2
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 LEAST( 5, 'Two', 9 );
Výsledek:
ERROR: invalid input syntax for type integer: "Two" LINE 1: SELECT LEAST( 5, 'Two', 9 ); ^
Řetězce
Předchozí příklad nemá naznačovat, že nemůžeme používat řetězce. Je to jen proto, abychom ukázali, že nemůžeme převádět datové typy.
Pro demonstraci uvádíme příklad, kde jsou všechny argumenty řetězce:
SELECT LEAST( 'Cat', 'Dog', 'Aardvark' );
Výsledek:
Aardvark
Data
Zde je srovnání datových řetězců:
SELECT LEAST(date '2030-01-01', date '2030-12-31');
Výsledek:
2030-01-01
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
LEAST( 5, null, 9 ),
LEAST( null, null, null );
Výsledek:
least | least -------+-------- 5 | <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 nám usnadní zobrazení nulového výsledku.
Chybí argumenty
Volání LEAST()
bez jakýchkoli argumentů vede k chybě:
SELECT LEAST();
Výsledek:
ERROR: syntax error at or near ")" LINE 1: SELECT LEAST(); ^
Jeden argument však můžeme předat bez chyby:
SELECT LEAST( 1 );
Výsledek:
1