miércoles, 12 de marzo de 2014

FUNCIONES ORACLE GREATEST Y LEAST

GREATEST

En Oracle PL/SQL la función GREATEST devuelve el mayor valor de una lista de expresiones.

SINTAXIS

GREATEST (expr1, expr2, ... expr_n)
PARÁMETROS O ARGUMENTOS

expr1 , expr2 ,. expr_n son expresiones que son evaluadas por la función MAYOR .

Teoría:

Si los tipos de datos de las expresiones son diferentes, todas las expresiones se convierten en lo que sea el tipo de datos expr1 es.
Si la comparación se basa en una comparación carácter, un carácter se considera mayor que otra si tiene un valor de conjunto de caracteres superior.

SELECT GREATEST(2, 5, 12, 3) FROM DUAL; --RETORNA 12  
SELECT GREATEST ('2', '5', '12', '3') FROM DUAL;   -- RETORNA 5
SELECT GREATEST('apples', 'oranges', 'bananas') FROM DUAL; -- RETORNA ORANGES  
SELECT GREATEST('apples', 'applis', 'applas')    FROM DUAL;  --RETORNA APPLIS

LEAST

En Oracle PL/SQL la función LEAST devuelve el valor menor de una lista de expresiones.

SINTAXIS


LEAST (expr1, expr2, ... expr_n)
PARÁMETROS O ARGUMENTOS

expr1 , expr2 ,. expr_n son expresiones que son evaluadas por la función MENOS .

Teoría:

Si los tipos de datos de las expresiones son diferentes, todas las expresiones se convierten en lo que sea el tipo de datos expr1 es.
Si la comparación se basa en una comparación carácter, un carácter se considera menor que otro si tiene un valor conjunto de caracteres inferior.
Tener un valor NULL en una de las expresiones devolverá NULL como el mínimo valor.


SELECT LEAST(2, 5, 12, 3) FROM DUAL;    --RETORNA 2
SELECT LEAST ('2', '5', '12', '3') FROM DUAL;    --RETORNA 12
SELECT LEAST('apples', 'oranges', 'bananas') FROM DUAL;    --RETORNA APPLES
SELECT LEAST('apples', 'applis', 'applas')    FROM DUAL;  --RETORNA APPLAS

3 comentarios:

  1. SELECT greatest('ho', 'hola', 'uno', 'ab') from dual;

    ORACLE ME DEVUELVE EN ESTA 'EL UNO' EN VEZ DE 'HOLA' Y NO ENTIENDO PORQUE.

    ResponderEliminar
  2. Buenos días,
    Por ser varchar el dato que devuelve es el mayor en el abecedario, si quieres que te devuelva el que tenga mayor longitud debes de utilizar LENGTH para cada palabra que pusiste en la sentencia.
    Saludos.

    ResponderEliminar
  3. que diferencia hay entre esta y min y max ??

    ResponderEliminar