Перейти к основному содержимому

greatest

Описание

Возвращает наибольшее значение из списка одного или нескольких параметров.

Как правило, возвращаемое значение имеет тот же тип данных, что и входные данные.

Параметры сравниваются на основе следующих правил:

  • Возвращается NULL, если любой из входных параметров равен NULL.

  • Если хотя бы один параметр имеет тип DOUBLE, все параметры сравниваются как значения DOUBLE. То же правило применяется к типам данных DECIMAL и FLOAT.

  • Если параметры представляют собой смесь чисел и строк, но строки могут быть преобразованы в числа, параметры сравниваются как числа. Если строки не могут быть преобразованы в числа, параметры сравниваются как строки.

  • Если параметры являются символами, они сравниваются на основе алфавитного порядка первой буквы.

Синтаксис

GREATEST(expr1,...);

Параметры

expr1: выражение для сравнения. Поддерживает следующие типы данных:

  • SMALLINT

  • TINYINT

  • INT

  • BIGINT

  • LARGEINT

  • FLOAT

  • DOUBLE

  • DECIMALV2

  • DECIMAL32

  • DECIMAL64

  • DECIMAL128

  • DATETIME

  • VARCHAR

Примеры

Пример 1: Возврат наибольшего значения для одного входного параметра.

mysql> select greatest(3);
+-------------+
| greatest(3) |
+-------------+
| 3 |
+-------------+
1 row in set (0.01 sec)

Пример 2: Возврат наибольшего значения из списка значений.

mysql> select greatest(3,4,5,5,6);
+-------------------------+
| greatest(3, 4, 5, 5, 6) |
+-------------------------+
| 6 |
+-------------------------+
1 row in set (0.00 sec)

Пример 3: Один параметр имеет тип DOUBLE, и возвращается значение DOUBLE.

mysql> select greatest(7,4.5);
+------------------+
| greatest(7, 4.5) |
+------------------+
| 7.0 |
+------------------+
1 row in set (0.05 sec)

Пример 4: Входные параметры представляют собой смесь числа и строки, но строка может быть преобразована в число. Параметры сравниваются как числа.

mysql> select greatest(7,'9');
+------------------+
| greatest(7, '9') |
+------------------+
| 9 |
+------------------+
1 row in set (0.04 sec)

Пример 5: Входные параметры представляют собой смесь числа и строки, но строка не может быть преобразована в число. Параметры сравниваются как строки. Строка '1' меньше чем 'at'.

select greatest(1,'at');
+-------------------+
| greatest(1, 'at') |
+-------------------+
| at |
+-------------------+

Пример 6: Входные параметры являются символами. Буква Z имеет наибольшее значение.

mysql> select greatest('A','B','Z');
+-------------------------+
| greatest('A', 'B', 'Z') |
+-------------------------+
| Z |
+-------------------------+
1 row in set (0.00 sec)

Ключевые слова

GREATEST, greatest