NULLIF è una funzione che ritorna NULL quando il confronto dei risultati delle due espressioni nel parametro sono uguali.
Molto utile nella gestione dell’errore ORA-01476: il divisore è uguale a zero
.
-- Se la prima espressione risulta uguale alle seconda, la funzione NULLIF ritorna NULL. NULLIF(espr1,espr1) -- Esempio: Ritorna NULL SELECT NULLIF('A','A') As RESULT FROM DUAL -- Esempio: Ritorna NULL SELECT NULLIF(5*2,10) As RESULT FROM DUAL -- Esempio: Ritorna 15 SELECT NULLIF(15,21) As RESULT FROM DUAL -- Esempio: Ritorna W SELECT NULLIF('W','K') As RESULT FROM DUAL -- Errore Il divisore uguale a 0 SELECT 47 / (15-10-5) As RESULT FROM DUAL -- Non genera errore e ritorna NULL SELECT 47 / NULLIF(15-10-5,0) As RESULT FROM DUAL
Per maggiori informazioni
http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions102.htm