In Oracle Database, LEAST()
la funzione restituisce il minimo di un elenco di una o più espressioni.
Sintassi
La sintassi è questa:
LEAST(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 LEAST('a', 'b', 'c')
FROM DUAL;
Risultato:
a
Eccone altri:
SELECT
LEAST('A', 'a') AS "r1",
LEAST('Cat', 'Dog', 'Dot') AS "r2",
LEAST(1, 2, 3) AS "r3",
LEAST(1, '2', 3) AS "r4",
LEAST('Cat', '2001-12-31') AS "r5"
FROM DUAL;
Risultato:
r1 r2 r3 r4 r5 _____ ______ _____ _____ _____________ A Cat 1 1 2001-12-31
Espressioni
Gli argomenti possono includere espressioni come questa:
SELECT LEAST(2 * 3, 1 * 3)
FROM DUAL;
Risultato:
3
Date
Ecco un confronto delle stringhe di data:
SELECT LEAST(DATE '2020-01-01', DATE '2021-01-01')
FROM DUAL;
Risultato:
01-JAN-20
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
LEAST(null, 2),
LEAST(1, null)
FROM DUAL;
Risultato:
LEAST(NULL,2) LEAST(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 usare SET NULL
per specificare una stringa diversa da restituire. Qui ho specificato che la stringa null
deve essere restituito.
Conteggio argomenti non valido
Chiamando LEAST()
senza alcun argomento genera un errore:
SELECT LEAST()
FROM DUAL;
Risultato:
SQL Error: ORA-00938: not enough arguments for function 00938. 00000 - "not enough arguments for function"
Puoi anche usare GREATEST()
per restituire il massimo di un elenco di una o più espressioni.