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