gravatar

Utilizar NVL2 en vez de DECODE con valores nulos NULL en Oracle

Para procesar valores nulos usamos el NVL, DECODE o NVL2

Si el primer argumento es nulo devolver el segundo argumento.

select nvl(null,'alfa') from dual;
----
alfa
1 row selected.

Si el primer argumento no es nulo devolver el mismo primer argumento.

select nvl('data','alfa') from dual;
----
data
1 row selected.


Si el primer argumento es igual segundo devolver el tercer argumento.

select decode(null,null,'alfa','beta') from dual;
----
alfa
1 row selected.

Si el primer argumento no es igual segundo devolver el cuarto argumento.

select decode('data',null,'alfa','beta') from dual;
----
beta
1 row selected.


Si el primer argumento es nulo devolver el tercer argumento.

select nvl2(null,'alfa','beta') from dual;
----
beta
1 row selected.

Si el primer argumento no es nulo devolver el segundo argumento.

select nvl2('data','alfa','beta') from dual;
----
alfa
1 row selected.