sql >> Base de Datos >  >> RDS >> MariaDB

Cómo funciona GREATEST() en MariaDB

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'