In PostgreSQL, il GREATEST()
La funzione restituisce il valore più grande (o più grande) da un elenco di qualsiasi numero di espressioni.
Il GREATEST()
La funzione non è inclusa nello standard SQL, ma è un'estensione popolare supportata da molti dei principali RDBMS.
Sintassi
GREATEST(value [, ...])
Ciò significa che possiamo passare uno o più valori alla funzione.
Esempio
Ecco un semplice esempio da dimostrare:
SELECT GREATEST( 3, 15, 7 );
Risultato:
15
Stringhe
Ecco un esempio in cui tutti gli argomenti sono stringhe:
SELECT GREATEST( 'Bear', 'Zebra', 'Ant' );
Risultato:
Zebra
Date
Ecco un confronto delle stringhe di data:
SELECT GREATEST(date '2027-01-01', date '2027-12-31');
Risultato:
2027-12-31
Tipo di dati comune
Le espressioni devono essere tutte convertibili in un tipo di dati comune. Il risultato utilizzerà questo tipo.
Se le espressioni non possono essere convertite in un tipo di dati comune, si verifica un errore:
SELECT GREATEST( 3, 'Fifteen', 7 );
Risultato:
ERROR: invalid input syntax for type integer: "Fifteen" LINE 1: SELECT GREATEST( 3, 'Fifteen', 7 ); ^
Valori Nulli
I valori Null vengono ignorati a meno che tutte le espressioni non siano null
. Se tutte le espressioni sono null
, quindi null
viene restituito:
\pset null '<null>'
SELECT
GREATEST( 3, null, 7 ),
GREATEST( null, null, null );
Risultato:
greatest | greatest ----------+---------- 7 | <null>
Per impostazione predefinita, psql restituisce la stringa vuota su valori null. Nella prima riga di questo esempio ho impostato valori null per l'output <null>
in modo che ci sia più facile vedere il risultato nullo.
Argomenti mancanti
Chiamando GREATEST()
senza alcun argomento genera un errore:
SELECT GREATEST();
Risultato:
ERROR: syntax error at or near ")" LINE 1: SELECT GREATEST(); ^
Tuttavia, possiamo passare un argomento senza errori:
SELECT GREATEST( 1 );
Risultato:
1