В MariaDB, GREATEST()
е вградена функция, която връща най-големия (т.е. най-големия/с най-голяма стойност) аргумент от своя списък с аргументи.
За да върнете минимума -valued аргумент, използвайте LEAST()
.
Синтаксис
Синтаксисът е така:
GREATEST(value1,value2,...)
Където value1,value2,…
е два или повече аргумента, за които да се върне най-големият.
Пример
Ето един пример:
SELECT GREATEST(3, 8);
Резултат:
+----------------+ | GREATEST(3, 8) | +----------------+ | 8 | +----------------+
Ето още един пример, който използва повече аргументи:
SELECT GREATEST(3, 8, 9, 12, 80, 7, 4);
Резултат:
+---------------------------------+ | GREATEST(3, 8, 9, 12, 80, 7, 4) | +---------------------------------+ | 80 | +---------------------------------+
Изрази
Аргументите могат да включват изрази като този:
SELECT GREATEST(2 * 3, 1 * 3);
Резултат:
+------------------------+ | GREATEST(2 * 3, 1 * 3) | +------------------------+ | 6 | +------------------------+
Стрингове
Аргументите не трябва да са числови. Например, ето сравнение на низове:
SELECT GREATEST('a', 'b', 'z');
Резултат:
+-------------------------+ | GREATEST('a', 'b', 'z') | +-------------------------+ | z | +-------------------------+
Дати
Ето сравнение на низовете за дата:
SELECT GREATEST('2020-01-01', '2021-01-01');
Резултат:
+--------------------------------------+ | GREATEST('2020-01-01', '2021-01-01') | +--------------------------------------+ | 2021-01-01 | +--------------------------------------+
Смесени типове
Документацията на MariaDB посочва, че ако някой аргумент е низ, чувствителен към малки и големи букви, аргументите се сравняват като низове, чувствителни към малки и големи букви. Въпреки това може да откриете, че смесването на типове може да доведе до неочаквани резултати и предупреждение.
Пример:
SELECT GREATEST('Cat', 10);
Резултат:
+---------------------+ | GREATEST('Cat', 10) | +---------------------+ | 10 | +---------------------+ 1 row in set, 1 warning (0.000 sec)
Проверете предупреждението:
SHOW WARNINGS;
Резултат:
+---------+------+-----------------------------------------+ | Level | Code | Message | +---------+------+-----------------------------------------+ | Warning | 1292 | Truncated incorrect DOUBLE value: 'Cat' | +---------+------+-----------------------------------------+
Нулеви аргументи
GREATEST()
връща null
ако някой аргумент е null
:
SELECT GREATEST(1, null, 3);
Резултат:
+----------------------+ | GREATEST(1, null, 3) | +----------------------+ | NULL | +----------------------+
Липсващи аргументи
Извикване на GREATEST()
с грешен брой аргументи или без никакви аргументи води до грешка:
SELECT GREATEST();
Резултат:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'GREATEST'
И:
SELECT GREATEST(10);
Резултат:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'GREATEST'