I PostgreSQL er GREATEST()
funktion returnerer den største (eller største) værdi fra en liste over et vilkårligt antal udtryk.
GREATEST()
funktion er ikke inkluderet i SQL-standarden, men det er en populær udvidelse, som mange større RDBMS'er understøtter.
Syntaks
GREATEST(value [, ...])
Det betyder, at vi kan videregive en eller flere værdier til funktionen.
Eksempel
Her er et simpelt eksempel til at demonstrere:
SELECT GREATEST( 3, 15, 7 );
Resultat:
15
Strenge
Her er et eksempel, hvor alle argumenter er strenge:
SELECT GREATEST( 'Bear', 'Zebra', 'Ant' );
Resultat:
Zebra
Datoer
Her er en sammenligning af datostrenge:
SELECT GREATEST(date '2027-01-01', date '2027-12-31');
Resultat:
2027-12-31
Almindelig datatype
Udtrykkene skal alle kunne konverteres til en fælles datatype. Resultatet vil bruge denne type.
Hvis udtrykkene ikke kan konverteres til en almindelig datatype, opstår der en fejl:
SELECT GREATEST( 3, 'Fifteen', 7 );
Resultat:
ERROR: invalid input syntax for type integer: "Fifteen" LINE 1: SELECT GREATEST( 3, 'Fifteen', 7 ); ^
Nul-værdier
Null-værdier ignoreres, medmindre alle udtryk er null
. Hvis alle udtryk er null
, derefter null
returneres:
\pset null '<null>'
SELECT
GREATEST( 3, null, 7 ),
GREATEST( null, null, null );
Resultat:
greatest | greatest ----------+---------- 7 | <null>
Som standard returnerer psql den tomme streng på null-værdier. I den første linje i dette eksempel satte jeg null-værdier til output <null>
så det gør det nemmere for os at se nulresultatet.
Manglende argumenter
Kalder GREATEST()
uden argumenter resulterer i en fejl:
SELECT GREATEST();
Resultat:
ERROR: syntax error at or near ")" LINE 1: SELECT GREATEST(); ^
Vi kan dog sende ét argument uden fejl:
SELECT GREATEST( 1 );
Resultat:
1