En Oracle Database, el LEAST()
función devuelve el menor de una lista de una o más expresiones.
Sintaxis
La sintaxis es así:
LEAST(expr [, expr ]...)
La primera expr
se utiliza para determinar el tipo de devolución:
- Si la primera
expr
es numérico, Oracle determina el argumento con la precedencia numérica más alta, convierte implícitamente los argumentos restantes a ese tipo de datos antes de la comparación y devuelve ese tipo de datos. - Si la primera
expr
es no numérico, luego cadaexpr
después de que el primero se convierta implícitamente al tipo de datos del primerexpr
antes de la comparación.
Ejemplo
Este es un ejemplo:
SELECT LEAST('a', 'b', 'c')
FROM DUAL;
Resultado:
a
Aquí hay algunos más:
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;
Resultado:
r1 r2 r3 r4 r5 _____ ______ _____ _____ _____________ A Cat 1 1 2001-12-31
Expresiones
Los argumentos pueden incluir expresiones como esta:
SELECT LEAST(2 * 3, 1 * 3)
FROM DUAL;
Resultado:
3
Fechas
Aquí hay una comparación de cadenas de fecha:
SELECT LEAST(DATE '2020-01-01', DATE '2021-01-01')
FROM DUAL;
Resultado:
01-JAN-20
La fecha se devuelve en el formato de fecha de la sesión actual. Consulte Cómo comprobar el formato de fecha de la sesión actual.
Valores nulos
Si algún argumento es null
, el resultado es null
:
SET NULL 'null';
SELECT
LEAST(null, 2),
LEAST(1, null)
FROM DUAL;
Resultado:
LEAST(NULL,2) LEAST(1,NULL) ________________ ________________ null null
De forma predeterminada, SQLcl y SQL*Plus devuelven un espacio en blanco cada vez que se produce un valor nulo como resultado de un SQL SELECT
declaración.
Sin embargo, puede usar SET NULL
para especificar una cadena diferente a devolver. Aquí especifiqué que la cadena null
debe ser devuelto.
Recuento de argumentos no válidos
Llamando a LEAST()
sin ningún argumento da como resultado un error:
SELECT LEAST()
FROM DUAL;
Resultado:
SQL Error: ORA-00938: not enough arguments for function 00938. 00000 - "not enough arguments for function"
También puede usar GREATEST()
para devolver el mayor de una lista de una o más expresiones.