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