W MariaDB, GREATEST()
jest wbudowaną funkcją, która zwraca największy (tj. największy/o maksymalnej wartości) argument ze swojej listy argumentów.
Aby zwrócić minimum argument o wartości, użyj LEAST()
.
Składnia
Składnia wygląda tak:
GREATEST(value1,value2,...)
Gdzie value1,value2,…
to dwa lub więcej argumentów, dla których zwrócić najwięcej.
Przykład
Oto przykład:
SELECT GREATEST(3, 8);
Wynik:
+----------------+ | GREATEST(3, 8) | +----------------+ | 8 | +----------------+
Oto kolejny przykład z większą liczbą argumentów:
SELECT GREATEST(3, 8, 9, 12, 80, 7, 4);
Wynik:
+---------------------------------+ | GREATEST(3, 8, 9, 12, 80, 7, 4) | +---------------------------------+ | 80 | +---------------------------------+
Wyrażenia
Argumenty mogą zawierać wyrażenia takie jak:
SELECT GREATEST(2 * 3, 1 * 3);
Wynik:
+------------------------+ | GREATEST(2 * 3, 1 * 3) | +------------------------+ | 6 | +------------------------+
Struny
Argumenty nie muszą być liczbowe. Na przykład, oto porównanie ciągów:
SELECT GREATEST('a', 'b', 'z');
Wynik:
+-------------------------+ | GREATEST('a', 'b', 'z') | +-------------------------+ | z | +-------------------------+
Daty
Oto porównanie ciągów dat:
SELECT GREATEST('2020-01-01', '2021-01-01');
Wynik:
+--------------------------------------+ | GREATEST('2020-01-01', '2021-01-01') | +--------------------------------------+ | 2021-01-01 | +--------------------------------------+
Typy mieszane
Dokumentacja MariaDB stwierdza, że jeśli jakikolwiek argument jest ciągiem rozróżniającym wielkość liter, argumenty są porównywane jako ciągi rozróżniające wielkość liter. Jednak może się okazać, że mieszanie typów może dać nieoczekiwane wyniki i ostrzeżenie.
Przykład:
SELECT GREATEST('Cat', 10);
Wynik:
+---------------------+ | GREATEST('Cat', 10) | +---------------------+ | 10 | +---------------------+ 1 row in set, 1 warning (0.000 sec)
Sprawdź ostrzeżenie:
SHOW WARNINGS;
Wynik:
+---------+------+-----------------------------------------+ | Level | Code | Message | +---------+------+-----------------------------------------+ | Warning | 1292 | Truncated incorrect DOUBLE value: 'Cat' | +---------+------+-----------------------------------------+
Argumenty zerowe
GREATEST()
zwraca null
jeśli jakikolwiek argument jest null
:
SELECT GREATEST(1, null, 3);
Wynik:
+----------------------+ | GREATEST(1, null, 3) | +----------------------+ | NULL | +----------------------+
Brakujące argumenty
Wywołanie GREATEST()
z niewłaściwą liczbą argumentów lub bez żadnych argumentów powoduje błąd:
SELECT GREATEST();
Wynik:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'GREATEST'
Oraz:
SELECT GREATEST(10);
Wynik:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'GREATEST'