Funcion Decode

Pablo
18 de Noviembre del 2005
Necesito saber si en la funcion deocde pueden evaluarse condiciones de >,<,>= o solo permite evaluar por =, y como es la sintaxis.
Hay otra funcion en oracle que lo haga, es decir como un IIF en otras BD ?

desa
18 de Noviembre del 2005
La función decode solo evalua por =, ahora pensando un poco puedes utilizar más de una función para saber si es >, <... Por ejemplo, si queremos que ocurra una cosa cuando la columna1 sea < que la columna2, podríamos usar la función decode haciendo:
DECODE(SIGN(COLUMNA1 - COLUMNA2), -1, RESULTADO2, RESULTADO2)
No sé si existe una forma más limpia, pero esto funcionaría...
Saludos.

Carlos
18 de Noviembre del 2005
>>La función decode solo evalua por =, ahora pensando un poco puedes utilizar más de una función para saber si es>, <... Por ejemplo, si queremos que ocurra una cosa cuando la columna1 sea < que la columna2, podríamos usar la función decode haciendo: DECODE(SIGN(COLUMNA1 - COLUMNA2), -1, RESULTADO2, RESULTADO2)
No sé si existe una forma más limpia, pero esto funcionaría...

Pues SÍ existe una forma más limpia: CASE...WHEN

Un saludo.

Carlos

desa
18 de Noviembre del 2005
Mucho más limpio con el CASE ciertamente... aunque la mía era original eh???, jejeje.

Un saludo Carlos, (en la del TOP llevo yo razón).

desa
18 de Noviembre del 2005
Por cierto, la función que he empleado: SIGN(N) devuelve, if N < 0 then -1; if N = 0 then 0; if N > 0 then 1