Ver Mensaje Individual
  #2 (permalink)  
Antiguo 30/07/2010, 13:26
Avatar de huesos52
huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Explicacion decode en query Oracle

Mirate este ejemplo
http://www.techonthenet.com/oracle/functions/decode.php

Abajo de la sentencia con decode, muestran en terminos de programación cual sería el equivalente.

En este caso, la función sign retorna un -1 si el parámetro de entrada es un numero negativo. por eso, si la resta da negativo, sign retorna un -1 que es comparado por el decode y pone en el campo lo que se requiere.

Para tu ejemplo:
Código SQL:
Ver original
  1. SQL> SELECT DECODE(SIGN(30-25),-1,'MENORES','MAYORES') FROM DUAL;
  2.  
  3. DECODE(
  4. -------
  5. MAYORES
  6.  
  7. SQL>  SELECT DECODE(SIGN(20-25),-1,'MENORES','MAYORES') FROM DUAL;
  8.  
  9. DECODE(
  10. -------
  11. MENORES

En el primer caso, como 30 - 25 es un numero positivo, el retorno es 1 (No -1) y se va para el "ELSE" que es mayores.

En el otro caso, como el retorno de sign es -1, pone menores y en palabras de programación, entraría por el IF.

se entiende?

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming