Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/07/2010, 13:11
charlie_zaa
 
Fecha de Ingreso: julio-2008
Mensajes: 8
Antigüedad: 15 años, 9 meses
Puntos: 0
Busqueda Explicacion decode en query Oracle

Saludos soy nuevo en oracle, estuve revisando el query con el que hacian un reporte en oracle reports 6i, bueno casi entendi todo, pero me quedan dudas en una sentencia del reporte que es la siguiente:

Decode(Sign(Nvl(saldo_actual,0)-nvl(saldo_anterior,0))),-1,(Nvl(saldo_actual,0)-nvl(saldo_anterior,0)),0) disminucion

Con esta sentencia lo que se quiere lograr es por ejemplo:
Select decode(sign(edad-25),-1,'Menores','mayores')

En este caso mio (lo que esta en negrita), Hace la resta de los saldos actual y anterior, y si es negativo pone la resta del saldo actual - el saldo anterior, caso contrario pone 0, segun entendi

Como resumen, lo que no comprendo es el -1 en la sentencia del decode, que hace, supongo que es para darle el signo negativo.

O en la otra sentencia mas sencilla, lo que se queria hacer era:

select iif(edad>20,'mayores de 20','menor de 20') as rango_edad
from personas;

y con el decode es asi: Select decode(sign(edad-25),-1,'Menores','mayores')
pero no comprendo el -1 bien, podrian explicarme

Gracias por su atencion