En Oracle Database, el GREATEST() la función devuelve la mayor de una lista de una o más expresiones.
Sintaxis
La sintaxis es así:
GREATEST(expr [, expr ]...)
La primera expr se utiliza para determinar el tipo de devolución:
- Si la primera
expres numérico, Oracle determina el argumento con la prioridad 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
expres no numérico, luego cadaexprdespués de que el primero se convierta implícitamente al tipo de datos del primerexprantes de la comparación.
Ejemplo
He aquí un ejemplo:
SELECT GREATEST('a', 'b', 'c')
FROM DUAL; Resultado:
c
Aquí hay algunos más:
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; Resultado:
r1 r2 r3 r4 r5 _____ ______ _____ _____ ______ a Dot 3 3 Cat
Expresiones
Los argumentos pueden incluir expresiones como esta:
SELECT GREATEST(2 * 3, 1 * 3)
FROM DUAL; Resultado:
6
Fechas
Aquí hay una comparación de cadenas de fecha:
SELECT GREATEST(DATE '2020-01-01', DATE '2021-01-01')
FROM DUAL; Resultado:
01-JAN-21
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
GREATEST(null, 2),
GREATEST(1, null)
FROM DUAL; Resultado:
GREATEST(NULL,2) GREATEST(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 GREATEST() sin ningún argumento da como resultado un error:
SELECT GREATEST()
FROM DUAL; Resultado:
SQL Error: ORA-00938: not enough arguments for function 00938. 00000 - "not enough arguments for function"
También puede usar LEAST() para devolver el menor de una lista de una o más expresiones.