In Oracle Database, il GREATEST()
la funzione restituisce il massimo di un elenco di una o più espressioni.
Sintassi
La sintassi è questa:
GREATEST(expr [, expr ]...)
Il primo expr
viene utilizzato per determinare il tipo di restituzione:
- Se il primo
expr
è numerico, quindi Oracle determina l'argomento con la precedenza numerica più alta, converte implicitamente gli argomenti rimanenti in quel tipo di dati prima del confronto e restituisce quel tipo di dati. - Se il primo
expr
è non numerico, quindi ogniexpr
dopo che il primo è stato convertito implicitamente nel tipo di dati del primoexpr
prima del confronto.
Esempio
Ecco un esempio:
SELECT GREATEST('a', 'b', 'c')
FROM DUAL;
Risultato:
c
Eccone altri:
SELECT
GREATEST('A', 'a') AS "r1",
GREATEST('Cat', 'Dog', 'Dot') AS "r2",
GREATEST(1, 2, 3) AS "r3",
GREATEST(1, '2', 3) AS "r4",
GREATEST('Cat', '2001-12-31') AS "r5"
FROM DUAL;
Risultato:
r1 r2 r3 r4 r5 _____ ______ _____ _____ ______ a Dot 3 3 Cat
Espressioni
Gli argomenti possono includere espressioni come questa:
SELECT GREATEST(2 * 3, 1 * 3)
FROM DUAL;
Risultato:
6
Date
Ecco un confronto delle stringhe di data:
SELECT GREATEST(DATE '2020-01-01', DATE '2021-01-01')
FROM DUAL;
Risultato:
01-JAN-21
La data viene restituita nel formato data della sessione corrente. Vedi Come controllare il formato della data della sessione corrente.
Valori Nulli
Se un argomento è null
, il risultato è null
:
SET NULL 'null';
SELECT
GREATEST(null, 2),
GREATEST(1, null)
FROM DUAL;
Risultato:
GREATEST(NULL,2) GREATEST(1,NULL) ___________________ ___________________ null null
Per impostazione predefinita, SQLcl e SQL*Plus restituiscono uno spazio vuoto ogni volta che si verifica un valore nullo come risultato di un SQL SELECT
dichiarazione.
Tuttavia, puoi utilizzare SET NULL
per specificare una stringa diversa da restituire. Qui ho specificato che la stringa null
deve essere restituito.
Conteggio argomenti non valido
Chiamando GREATEST()
senza alcun argomento genera un errore:
SELECT GREATEST()
FROM DUAL;
Risultato:
SQL Error: ORA-00938: not enough arguments for function 00938. 00000 - "not enough arguments for function"
Puoi anche usare LEAST()
per restituire il minimo di un elenco di una o più espressioni.