MySQL中的nvl2()函數(shù)用于比較兩個(gè)表達(dá)式的結(jié)果,如果第一個(gè)表達(dá)式不是NULL,則返回第二個(gè)表達(dá)式的結(jié)果;如果第一個(gè)表達(dá)式是NULL,則返回第三個(gè)表達(dá)式的結(jié)果。
語(yǔ)法如下:
nvl2(expr1, expr2, expr3)
其中,expr1是需要比較的表達(dá)式,expr2是expr1不為NULL時(shí)返回的結(jié)果,expr3是expr1為NULL時(shí)返回的結(jié)果。
下面舉一個(gè)例子:
SELECT nvl2(NULL, 1, 2); -- 返回2 SELECT nvl2(3, 1, 2); -- 返回1
在第一個(gè)例子中,由于第一個(gè)表達(dá)式為NULL,所以返回第三個(gè)表達(dá)式的結(jié)果,即2。
在第二個(gè)例子中,由于第一個(gè)表達(dá)式不是NULL,所以返回第二個(gè)表達(dá)式的結(jié)果,即1。
需要注意的是,nvl2()函數(shù)只接受三個(gè)參數(shù),不能多于或少于三個(gè)。如果需要比較多個(gè)表達(dá)式,可以使用嵌套的nvl2()函數(shù)。
SELECT nvl2(NULL, NULL, nvl2(NULL, 1, 2)); -- 返回2
在上述例子中,由于第一個(gè)表達(dá)式和第二個(gè)表達(dá)式都為NULL,所以返回嵌套的nvl2函數(shù)的結(jié)果,即2。