天天看點

NVL()、NVL2() 函數的用法

NVL和NVL2兩個函數雖然不經常用,但是偶爾也會用到,是以了解一下。

文法:

--如果表達式1為空則顯示表達式2的值,如果表達式1不為空,則顯示表達式1的值
NVL(表達式1,表達式2);

--如果字段1為空,則顯示字段2的值,如果字段1不為空則顯示字段1的值
NVL(字段1,字段2);


--如果表達式1為空,則顯示表達式3的值,如果不為空則顯示表達式2的值
NVL2(表達式1,表達式2,表達式3)

--如果字段1為空則顯示字段3的值,如果字段1不為空則顯示字段2的值
NVL2(字段1,字段2,字段3)
           

比如有表:SYS_USER_INFO,表中有其中三個字段:REAL_NAME,NICK_NAME,NET_NAME。

需求;如果REAL_NAME為空,則查詢NET_NAME,不為空則查詢REAL_NAME:

SELECT NVL(REAL_NAME,NET_NAME) AS NAME FROM SYS_USER_INFO
           

在項目中有時需要在查詢時預留幾個備用字段,也可以通過NVL2來實作,如:

NVL2('SPARE','','') AS SPARE
           

 這樣無論如何都會有個SPARE為空的字段。

我的部落格原文位址

繼續閱讀