El usar NVL2

NVL2 es una pequeña función aseada del SQL que pienso soy underused. Se parece a mí que podría tener un nombre mejor.

El formato es NVL2 (expr1, expr2, expr3). Qué lo hace es si expr1 es NULL, él vuelve expr3. Si expr1 NOT NULL, vuelve expr2.

IF la declaración para hacer igual parecería:

IF expr1 IS NULL 
THEN
expr3
ELSE
expr2
END IF

Tiendo para conseguir expr2 y expr3 al revés cada vez que utilizo esta función. No soy seguro porqué. Conjeturo que resuelvo mentalmente expresiones del non-NOT antes NO de expresiones.

Tan si funcionaste esta escritura:

SELECT nvl2('ABC', 'DEF', 'GHI')
FROM DUAL
/
SELECT nvl2(NULL, 'DEF', 'GHI')
FROM DUAL
/

Conseguirías esta salida:

NVL
---
DEF
1 row selected.
NVL
---
GHI
1 row selected.

You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed.

Comments are closed.