MariaDB
 sql >> Database >  >> RDS >> MariaDB

Come funziona GREATEST() in MariaDB

In MariaDB, GREATEST() è una funzione incorporata che restituisce l'argomento più grande (cioè più grande/con valore massimo) dal suo elenco di argomenti.

Per restituire il minimo -argomento con valore, usa LEAST() .

Sintassi

La sintassi è questa:

GREATEST(value1,value2,...)

Dove value1,value2,… sono due o più argomenti per i quali restituire il massimo.

Esempio

Ecco un esempio:

SELECT GREATEST(3, 8);

Risultato:

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

Ecco un altro esempio che utilizza più argomenti:

SELECT GREATEST(3, 8, 9, 12, 80, 7, 4);

Risultato:

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

Espressioni

Gli argomenti possono includere espressioni come questa:

SELECT GREATEST(2 * 3, 1 * 3);

Risultato:

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

Stringhe

Non è necessario che gli argomenti siano numerici. Ad esempio, ecco un confronto di stringhe:

SELECT GREATEST('a', 'b', 'z');

Risultato:

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

Date

Ecco un confronto delle stringhe di data:

SELECT GREATEST('2020-01-01', '2021-01-01');

Risultato:

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

Tipi misti

La documentazione di MariaDB afferma che se un argomento è una stringa con distinzione tra maiuscole e minuscole, gli argomenti vengono confrontati come stringhe con distinzione tra maiuscole e minuscole. Tuttavia, potresti scoprire che la combinazione di tipi può produrre risultati imprevisti e un avviso.

Esempio:

SELECT GREATEST('Cat', 10);

Risultato:

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

Controlla l'avviso:

SHOW WARNINGS;

Risultato:

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

Argomenti nulli

GREATEST() restituisce null se un argomento è null :

SELECT GREATEST(1, null, 3);

Risultato:

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

Argomenti mancanti

Chiamando GREATEST() con il numero errato di argomenti o senza argomenti genera un errore:

SELECT GREATEST();

Risultato:

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

E:

SELECT GREATEST(10);

Risultato:

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