PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

LEAST()-Funktion in PostgreSQL

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