W PostgreSQL GREATEST() funkcja zwraca największą (lub największą) wartość z listy dowolnej liczby wyrażeń.
GREATEST() funkcja nie jest zawarta w standardzie SQL, ale jest popularnym rozszerzeniem, które obsługuje wiele głównych RDBMS.
Składnia
GREATEST(value [, ...]) Oznacza to, że możemy przekazać do funkcji jedną lub więcej wartości.
Przykład
Oto prosty przykład do zademonstrowania:
SELECT GREATEST( 3, 15, 7 ); Wynik:
15
Struny
Oto przykład, w którym wszystkie argumenty są ciągami:
SELECT GREATEST( 'Bear', 'Zebra', 'Ant' ); Wynik:
Zebra
Daty
Oto porównanie ciągów dat:
SELECT GREATEST(date '2027-01-01', date '2027-12-31'); Wynik:
2027-12-31
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 GREATEST( 3, 'Fifteen', 7 ); Wynik:
ERROR: invalid input syntax for type integer: "Fifteen"
LINE 1: SELECT GREATEST( 3, 'Fifteen', 7 );
^ 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
GREATEST( 3, null, 7 ),
GREATEST( null, null, null ); Wynik:
greatest | greatest
----------+----------
7 | <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 GREATEST() bez żadnych argumentów powoduje błąd:
SELECT GREATEST(); Wynik:
ERROR: syntax error at or near ")"
LINE 1: SELECT GREATEST();
^ Możemy jednak przekazać jeden argument bez błędu:
SELECT GREATEST( 1 ); Wynik:
1