I PostgreSQL, GREATEST()
funktion returnerar det största (eller största) värdet från en lista med valfritt antal uttryck.
GREATEST()
funktion ingår inte i SQL-standarden, men det är ett populärt tillägg som många stora RDBMS stödjer.
Syntax
GREATEST(value [, ...])
Det betyder att vi kan skicka ett eller flera värden till funktionen.
Exempel
Här är ett enkelt exempel att visa:
SELECT GREATEST( 3, 15, 7 );
Resultat:
15
Strängar
Här är ett exempel där alla argument är strängar:
SELECT GREATEST( 'Bear', 'Zebra', 'Ant' );
Resultat:
Zebra
Datum
Här är en jämförelse av datumsträngar:
SELECT GREATEST(date '2027-01-01', date '2027-12-31');
Resultat:
2027-12-31
Vanlig datatyp
Uttrycken måste alla kunna konverteras till en gemensam datatyp. Resultatet kommer att använda denna typ.
Om uttrycken inte kan konverteras till en vanlig datatyp uppstår ett fel:
SELECT GREATEST( 3, 'Fifteen', 7 );
Resultat:
ERROR: invalid input syntax for type integer: "Fifteen" LINE 1: SELECT GREATEST( 3, 'Fifteen', 7 ); ^
Nullvärden
Nullvärden ignoreras om inte alla uttryck är null
. Om alla uttryck är null
, sedan null
returneras:
\pset null '<null>'
SELECT
GREATEST( 3, null, 7 ),
GREATEST( null, null, null );
Resultat:
greatest | greatest ----------+---------- 7 | <null>
Som standard returnerar psql den tomma strängen på null-värden. I den första raden i det här exemplet ställer jag in nollvärden för att mata ut <null>
så att det gör det lättare för oss att se nollresultatet.
Argument saknas
Anropar GREATEST()
utan några argument resulterar i ett fel:
SELECT GREATEST();
Resultat:
ERROR: syntax error at or near ")" LINE 1: SELECT GREATEST(); ^
Däremot kan vi skicka ett argument utan fel:
SELECT GREATEST( 1 );
Resultat:
1