In PostgreSQL der GREATEST()
Funktion gibt den größten (oder größten) Wert aus einer Liste beliebig vieler Ausdrücke zurück.
Der GREATEST()
Die Funktion ist nicht im SQL-Standard enthalten, aber es ist eine beliebte Erweiterung, die von vielen großen RDBMS unterstützt wird.
Syntax
GREATEST(value [, ...])
Das bedeutet, dass wir der Funktion einen oder mehrere Werte übergeben können.
Beispiel
Hier ist ein einfaches Beispiel zur Veranschaulichung:
SELECT GREATEST( 3, 15, 7 );
Ergebnis:
15
Strings
Hier ist ein Beispiel, in dem alle Argumente Zeichenfolgen sind:
SELECT GREATEST( 'Bear', 'Zebra', 'Ant' );
Ergebnis:
Zebra
Termine
Hier ist ein Vergleich von Datumszeichenfolgen:
SELECT GREATEST(date '2027-01-01', date '2027-12-31');
Ergebnis:
2027-12-31
Gemeinsamer Datentyp
Die Ausdrücke müssen alle in einen gemeinsamen Datentyp konvertierbar sein. Das Ergebnis verwendet diesen Typ.
Wenn die Ausdrücke nicht in einen gemeinsamen Datentyp konvertiert werden können, tritt ein Fehler auf:
SELECT GREATEST( 3, 'Fifteen', 7 );
Ergebnis:
ERROR: invalid input syntax for type integer: "Fifteen" LINE 1: SELECT GREATEST( 3, 'Fifteen', 7 ); ^
Nullwerte
Nullwerte werden ignoriert, es sei denn, alle Ausdrücke sind null
. Wenn alle Ausdrücke null
sind , dann null
wird zurückgegeben:
\pset null '<null>'
SELECT
GREATEST( 3, null, 7 ),
GREATEST( null, null, null );
Ergebnis:
greatest | greatest ----------+---------- 7 | <null>
Standardmäßig gibt psql bei Nullwerten die leere Zeichenfolge zurück. In der ersten Zeile dieses Beispiels setze ich Nullwerte zur Ausgabe von <null>
damit wir das Null-Ergebnis leichter sehen können.
Fehlende Argumente
Aufruf von GREATEST()
ohne Argumente führt zu einem Fehler:
SELECT GREATEST();
Ergebnis:
ERROR: syntax error at or near ")" LINE 1: SELECT GREATEST(); ^
Wir können jedoch ein Argument ohne Fehler übergeben:
SELECT GREATEST( 1 );
Ergebnis:
1