En MariaDB, GREATEST()
es una función integrada que devuelve el argumento más grande (es decir, el más grande/de valor máximo) de su lista de argumentos.
Para devolver el mínimo -argumento valorado, use LEAST()
.
Sintaxis
La sintaxis es así:
GREATEST(value1,value2,...)
Donde value1,value2,…
son dos o más argumentos para los cuales se devuelve el mayor.
Ejemplo
He aquí un ejemplo:
SELECT GREATEST(3, 8);
Resultado:
+----------------+ | GREATEST(3, 8) | +----------------+ | 8 | +----------------+
Aquí hay otro ejemplo que usa más argumentos:
SELECT GREATEST(3, 8, 9, 12, 80, 7, 4);
Resultado:
+---------------------------------+ | GREATEST(3, 8, 9, 12, 80, 7, 4) | +---------------------------------+ | 80 | +---------------------------------+
Expresiones
Los argumentos pueden incluir expresiones como esta:
SELECT GREATEST(2 * 3, 1 * 3);
Resultado:
+------------------------+ | GREATEST(2 * 3, 1 * 3) | +------------------------+ | 6 | +------------------------+
Cuerdas
Los argumentos no necesitan ser numéricos. Por ejemplo, aquí hay una comparación de cadenas:
SELECT GREATEST('a', 'b', 'z');
Resultado:
+-------------------------+ | GREATEST('a', 'b', 'z') | +-------------------------+ | z | +-------------------------+
Fechas
Aquí hay una comparación de cadenas de fecha:
SELECT GREATEST('2020-01-01', '2021-01-01');
Resultado:
+--------------------------------------+ | GREATEST('2020-01-01', '2021-01-01') | +--------------------------------------+ | 2021-01-01 | +--------------------------------------+
Tipos mixtos
La documentación de MariaDB establece que si algún argumento es una cadena que distingue entre mayúsculas y minúsculas, los argumentos se comparan como cadenas que distinguen entre mayúsculas y minúsculas. Sin embargo, es posible que la mezcla de tipos produzca resultados inesperados y una advertencia.
Ejemplo:
SELECT GREATEST('Cat', 10);
Resultado:
+---------------------+ | GREATEST('Cat', 10) | +---------------------+ | 10 | +---------------------+ 1 row in set, 1 warning (0.000 sec)
Compruebe la advertencia:
SHOW WARNINGS;
Resultado:
+---------+------+-----------------------------------------+ | Level | Code | Message | +---------+------+-----------------------------------------+ | Warning | 1292 | Truncated incorrect DOUBLE value: 'Cat' | +---------+------+-----------------------------------------+
Argumentos nulos
GREATEST()
devuelve null
si algún argumento es null
:
SELECT GREATEST(1, null, 3);
Resultado:
+----------------------+ | GREATEST(1, null, 3) | +----------------------+ | NULL | +----------------------+
Argumentos faltantes
Llamando a GREATEST()
con el número incorrecto de argumentos, o sin ningún argumento da como resultado un error:
SELECT GREATEST();
Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'GREATEST'
Y:
SELECT GREATEST(10);
Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'GREATEST'