sql >> Base de Datos >  >> RDS >> Oracle

Función MENOS () en Oracle

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 cada expr después de que el primero se convierta implícitamente al tipo de datos del primer expr 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.