In PostgreSQL is de GREATEST()
functie retourneert de grootste (of grootste) waarde uit een lijst van een willekeurig aantal uitdrukkingen.
De GREATEST()
functie is niet opgenomen in de SQL-standaard, maar het is een populaire extensie die door veel grote RDBMS'en wordt ondersteund.
Syntaxis
GREATEST(value [, ...])
Dit betekent dat we een of meer waarden aan de functie kunnen doorgeven.
Voorbeeld
Hier is een eenvoudig voorbeeld om te demonstreren:
SELECT GREATEST( 3, 15, 7 );
Resultaat:
15
Snaren
Hier is een voorbeeld waarbij alle argumenten strings zijn:
SELECT GREATEST( 'Bear', 'Zebra', 'Ant' );
Resultaat:
Zebra
Datums
Hier is een vergelijking van datumreeksen:
SELECT GREATEST(date '2027-01-01', date '2027-12-31');
Resultaat:
2027-12-31
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 GREATEST( 3, 'Fifteen', 7 );
Resultaat:
ERROR: invalid input syntax for type integer: "Fifteen" LINE 1: SELECT GREATEST( 3, 'Fifteen', 7 ); ^
Null-waarden
Null-waarden worden genegeerd, tenzij alle expressies null
zijn . Als alle uitdrukkingen null
zijn , dan null
wordt geretourneerd:
\pset null '<null>'
SELECT
GREATEST( 3, null, 7 ),
GREATEST( null, null, null );
Resultaat:
greatest | greatest ----------+---------- 7 | <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
GREATEST()
. aanroepen zonder argumenten resulteert in een fout:
SELECT GREATEST();
Resultaat:
ERROR: syntax error at or near ")" LINE 1: SELECT GREATEST(); ^
We kunnen echter één argument foutloos doorgeven:
SELECT GREATEST( 1 );
Resultaat:
1