Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Função MySQL GREATEST() – Encontre o maior argumento em uma lista de argumentos


GREATEST() do MySQL function é uma função de comparação que retorna o maior valor de uma lista de valores.

A lista de valores é fornecida como vários argumentos. Em outras palavras, GREATEST() retorna o argumento de valor máximo de uma lista de argumentos.


Sintaxe


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

Cada argumento é separado por uma vírgula. Esta função compara todos eles e retorna aquele com o maior valor.

Exemplo 1 – Comparando Números


Se todos os argumentos forem inteiros, eles serão comparados como inteiros.
SELECT GREATEST(12, 120, 2400) AS 'Result';

Resultado:
+--------+
| Result |
+--------+
|   2400 |
+--------+

Se pelo menos um argumento for de precisão dupla, eles serão comparados como valores de precisão dupla. Caso contrário, se pelo menos um argumento for um DECIMAL valor, eles são comparados como DECIMAL valores.
SELECT GREATEST(12.00, 120, 2400) AS 'Result';

Resultado:
+---------+
| Result  |
+---------+
| 2400.00 |
+---------+

Veja abaixo as regras exatas para determinar o valor de retorno.

Exemplo 2 – Comparando Strings


Aqui está um exemplo de comparação de strings.
SELECT GREATEST('a', 'b', 'c') AS 'Result';

Resultado:
+--------+
| Result |
+--------+
| c      |
+--------+

Aqui está mais um:
SELECT GREATEST('Cat', 'Dogg', 'Rat') AS 'Result';

Resultado:
+--------+
| Result |
+--------+
| Rat    |
+--------+

Exemplo 3 - Valores NULOS


Se algum dos argumentos for NULL , o resultado é NULL .
SELECT GREATEST('a', NULL, 'c') AS 'Result';

Resultado:
+--------+
| Result |
+--------+
| NULL   |
+--------+

Regras de comparação


Certas regras são aplicadas ao determinar qual será o valor de retorno. Essas regras são as seguintes:
  • Se algum argumento for NULL , o resultado é NULL . Nenhuma comparação é necessária.
  • Se todos os argumentos tiverem valores inteiros, eles serão comparados como números inteiros.
  • Se pelo menos um argumento for de precisão dupla, eles serão comparados como valores de precisão dupla. Caso contrário, se pelo menos um argumento for um DECIMAL valor, eles são comparados como DECIMAL valores.
  • Se os argumentos forem uma mistura de números e strings, eles serão comparados como números.
  • Se algum argumento for uma string não binária (caracteres), os argumentos serão comparados como strings não binárias.
  • Em todos os outros casos, os argumentos são comparados como strings binárias.