示例:
create unique index po_order_vdef6_index on po_order(NVL2 (NULLIF(nvl(dr,0),1),NULLIF(vdef6,'~'),null));
解析: dr=0 且 vdef6不等于~ 時(shí) vdef6 不能重復(fù)
當(dāng) br=1 時(shí)奥额,NULLIF(br,1) 則返回null值, 即NVL2(NULLIF(dr,1),dr,NULL), 返回的是null值敦姻,同理筛峭,另外兩個(gè)NVL2的表達(dá)式也是返回null值铐刘,因此,三個(gè)字段都認(rèn)為是null值影晓,所以可以允許插入镰吵;
NULL指的是空值,或者非法值挂签。
NVL (expr1, expr2)->expr1為NULL疤祭,返回expr2;不為NULL饵婆,返回expr1勺馆。注意兩者的類(lèi)型要一致
NVL2 (expr1, expr2, expr3) ->expr1不為NULL,返回expr2侨核;為NULL谓传,返回expr3。expr2和expr3類(lèi)型不同的話(huà)芹关,expr3會(huì)轉(zhuǎn)換為expr2的類(lèi)型
NULLIF (expr1, expr2) ->相等返回NULL续挟,不等返回expr1