MariaDB
 sql >> Base de Dados >  >> RDS >> MariaDB

Como GREATEST() funciona no MariaDB


No MariaDB, GREATEST() é uma função interna que retorna o maior argumento (ou seja, maior/valor máximo) de sua lista de argumentos.

Para retornar o mínimo argumento de valor, use LEAST() .

Sintaxe


A sintaxe fica assim:
GREATEST(value1,value2,...)

Onde value1,value2,… é dois ou mais argumentos para os quais retornar o maior.

Exemplo


Aqui está um exemplo:
SELECT GREATEST(3, 8);

Resultado:
+----------------+
| GREATEST(3, 8) |
+----------------+
|              8 |
+----------------+

Aqui está outro exemplo que usa mais argumentos:
SELECT GREATEST(3, 8, 9, 12, 80, 7, 4);

Resultado:
+---------------------------------+
| GREATEST(3, 8, 9, 12, 80, 7, 4) |
+---------------------------------+
|                              80 |
+---------------------------------+

Expressões


Os argumentos podem incluir expressões como esta:
SELECT GREATEST(2 * 3, 1 * 3);

Resultado:
+------------------------+
| GREATEST(2 * 3, 1 * 3) |
+------------------------+
|                      6 |
+------------------------+

Cordas


Os argumentos não precisam ser numéricos. Por exemplo, aqui está uma comparação de strings:
SELECT GREATEST('a', 'b', 'z');

Resultado:
+-------------------------+
| GREATEST('a', 'b', 'z') |
+-------------------------+
| z                       |
+-------------------------+

Datas


Aqui está uma comparação de strings de data:
SELECT GREATEST('2020-01-01', '2021-01-01');

Resultado:
+--------------------------------------+
| GREATEST('2020-01-01', '2021-01-01') |
+--------------------------------------+
| 2021-01-01                           |
+--------------------------------------+

Tipos mistos


A documentação do MariaDB afirma que, se algum argumento for uma string que diferencia maiúsculas de minúsculas, os argumentos são comparados como strings que diferenciam maiúsculas de minúsculas. No entanto, você pode descobrir que tipos de mistura podem produzir resultados inesperados e um aviso.

Exemplo:
SELECT GREATEST('Cat', 10);

Resultado:
+---------------------+
| GREATEST('Cat', 10) |
+---------------------+
|                  10 |
+---------------------+
1 row in set, 1 warning (0.000 sec)

Confira o aviso:
SHOW WARNINGS;

Resultado:
+---------+------+-----------------------------------------+
| Level   | Code | Message                                 |
+---------+------+-----------------------------------------+
| Warning | 1292 | Truncated incorrect DOUBLE value: 'Cat' |
+---------+------+-----------------------------------------+

Argumentos nulos


GREATEST() retorna null se algum argumento for null :
SELECT GREATEST(1, null, 3);

Resultado:
+----------------------+
| GREATEST(1, null, 3) |
+----------------------+
|                 NULL |
+----------------------+

Argumentos ausentes


Chamando GREATEST() com o número errado de argumentos ou sem argumentos resulta em um erro:
SELECT GREATEST();

Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'GREATEST'

E:
SELECT GREATEST(10);

Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'GREATEST'