W PostgreSQL LEAST()
funkcja zwraca najmniejszą wartość z listy dowolnej liczby wyrażeń.
LEAST()
funkcja nie jest zawarta w standardzie SQL, ale jest popularnym rozszerzeniem, które obsługuje wiele głównych RDBMS.
Składnia
LEAST(value [, ...])
Zasadniczo oznacza to, że możemy przekazać do funkcji jedną lub więcej wartości.
Przykład
Oto prosty przykład do zademonstrowania:
SELECT LEAST( 5, 2, 9 );
Wynik:
2
Wspólny typ danych
Wszystkie wyrażenia muszą być konwertowalne na wspólny typ danych. Wynik użyje tego typu.
Jeśli wyrażeń nie można przekonwertować na typowy typ danych, pojawia się błąd:
SELECT LEAST( 5, 'Two', 9 );
Wynik:
ERROR: invalid input syntax for type integer: "Two" LINE 1: SELECT LEAST( 5, 'Two', 9 ); ^
Struny
Poprzedni przykład nie sugeruje, że nie możemy używać łańcuchów. To tylko po to, by pokazać, że nie możemy konwertować typów danych.
Aby zademonstrować, oto przykład, w którym wszystkie argumenty są ciągami:
SELECT LEAST( 'Cat', 'Dog', 'Aardvark' );
Wynik:
Aardvark
Daty
Oto porównanie ciągów dat:
SELECT LEAST(date '2030-01-01', date '2030-12-31');
Wynik:
2030-01-01
Wartości puste
Wartości null są ignorowane, chyba że wszystkie wyrażenia mają wartość null
. Jeśli wszystkie wyrażenia są null
, a następnie null
jest zwracany:
\pset null '<null>'
SELECT
LEAST( 5, null, 9 ),
LEAST( null, null, null );
Wynik:
least | least -------+-------- 5 | <null>
Domyślnie psql zwraca pusty ciąg na wartości null. W pierwszym wierszu tego przykładu ustawiłem wartości null na wyjście <null>
aby ułatwić nam zobaczenie wyniku zerowego.
Brakujące argumenty
Wywołanie LEAST()
bez żadnych argumentów powoduje błąd:
SELECT LEAST();
Wynik:
ERROR: syntax error at or near ")" LINE 1: SELECT LEAST(); ^
Możemy jednak przekazać jeden argument bez błędu:
SELECT LEAST( 1 );
Wynik:
1