In PostgreSQL das LEAST()
Funktion gibt den kleinsten Wert aus einer Liste beliebig vieler Ausdrücke zurück.
Das LEAST()
Die Funktion ist nicht im SQL-Standard enthalten, aber es ist eine beliebte Erweiterung, die von vielen großen RDBMS unterstützt wird.
Syntax
LEAST(value [, ...])
Das bedeutet im Grunde, dass wir der Funktion einen oder mehrere Werte übergeben können.
Beispiel
Hier ist ein einfaches Beispiel zur Veranschaulichung:
SELECT LEAST( 5, 2, 9 );
Ergebnis:
2
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 LEAST( 5, 'Two', 9 );
Ergebnis:
ERROR: invalid input syntax for type integer: "Two" LINE 1: SELECT LEAST( 5, 'Two', 9 ); ^
Strings
Das vorherige Beispiel soll nicht suggerieren, dass wir keine Strings verwenden können. Es soll lediglich zeigen, dass wir Datentypen nicht konvertieren können.
Zur Veranschaulichung hier ein Beispiel, bei dem alle Argumente Strings sind:
SELECT LEAST( 'Cat', 'Dog', 'Aardvark' );
Ergebnis:
Aardvark
Termine
Hier ist ein Vergleich von Datumszeichenfolgen:
SELECT LEAST(date '2030-01-01', date '2030-12-31');
Ergebnis:
2030-01-01
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
LEAST( 5, null, 9 ),
LEAST( null, null, null );
Ergebnis:
least | least -------+-------- 5 | <null>
Standardmäßig gibt psql die leere Zeichenfolge bei Nullwerten 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 LEAST()
ohne Argumente führt zu einem Fehler:
SELECT LEAST();
Ergebnis:
ERROR: syntax error at or near ")" LINE 1: SELECT LEAST(); ^
Wir können jedoch ein Argument ohne Fehler übergeben:
SELECT LEAST( 1 );
Ergebnis:
1