In PostgreSQL is de LEAST()
functie retourneert de kleinste waarde uit een lijst van een willekeurig aantal uitdrukkingen.
De LEAST()
functie is niet opgenomen in de SQL-standaard, maar het is een populaire extensie die door veel grote RDBMS'en wordt ondersteund.
Syntaxis
LEAST(value [, ...])
Dit betekent in feite dat we een of meer waarden aan de functie kunnen doorgeven.
Voorbeeld
Hier is een eenvoudig voorbeeld om te demonstreren:
SELECT LEAST( 5, 2, 9 );
Resultaat:
2
Algemeen gegevenstype
De expressies moeten allemaal converteerbaar zijn naar een algemeen gegevenstype. Het resultaat zal dit type gebruiken.
Als de uitdrukkingen niet kunnen worden geconverteerd naar een algemeen gegevenstype, treedt er een fout op:
SELECT LEAST( 5, 'Two', 9 );
Resultaat:
ERROR: invalid input syntax for type integer: "Two" LINE 1: SELECT LEAST( 5, 'Two', 9 ); ^
Snaren
Het vorige voorbeeld wil niet suggereren dat we geen strings kunnen gebruiken. Het is alleen maar om te laten zien dat we gegevenstypen niet kunnen converteren.
Ter demonstratie, hier is een voorbeeld waarbij alle argumenten strings zijn:
SELECT LEAST( 'Cat', 'Dog', 'Aardvark' );
Resultaat:
Aardvark
Datums
Hier is een vergelijking van datumreeksen:
SELECT LEAST(date '2030-01-01', date '2030-12-31');
Resultaat:
2030-01-01
Null-waarden
Null-waarden worden genegeerd, tenzij alle expressies null
zijn . Als alle uitdrukkingen null
zijn , dan null
wordt geretourneerd:
\pset null '<null>'
SELECT
LEAST( 5, null, 9 ),
LEAST( null, null, null );
Resultaat:
least | least -------+-------- 5 | <null>
Standaard retourneert psql de lege tekenreeks voor null-waarden. In de eerste regel in dit voorbeeld stel ik null-waarden in om <null>
. uit te voeren zodat we het null-resultaat gemakkelijker kunnen zien.
Ontbrekende argumenten
LEAST()
. aanroepen zonder argumenten resulteert in een fout:
SELECT LEAST();
Resultaat:
ERROR: syntax error at or near ")" LINE 1: SELECT LEAST(); ^
We kunnen echter één argument foutloos doorgeven:
SELECT LEAST( 1 );
Resultaat:
1