SQL中NVL()函數(shù)的用法
SQL中的NVL()函數(shù)是一個(gè)空值轉(zhuǎn)換函數(shù),其語(yǔ)法為:NVL(expr1, expr2)。如果expr1為空值,則NVL()函數(shù)返回expr2的值,否則返回expr1的值。該函數(shù)的目的是將空值轉(zhuǎn)換為實(shí)際的值。expr1和expr2的數(shù)據(jù)類(lèi)型必須為同一類(lèi)型,可以是數(shù)字型、字符型和日期型。
以下是一些NVL()函數(shù)的例子:
- 對(duì)于數(shù)字型:NVL(comm, 0),如果comm為空值,則返回0,否則返回comm的值。
- 對(duì)于字符型:NVL(TO_CHAR(comm), ‘No Commission’),如果comm為空值,則返回字符串’No Commission’,否則返回comm的字符串值。
- 對(duì)于日期型:NVL(hiredate, ‘31-DEC-99’),如果hiredate為空值,則返回日期’31-DEC-99’,否則返回hiredate的日期值。
除了NVL()函數(shù)外,SQL還有一個(gè)類(lèi)似的函數(shù)NVL2(),其語(yǔ)法為:NVL2(expr1, expr2, expr3)。如果expr1為空值,則返回expr3的值,否則返回expr2的值。
以下是一個(gè)NVL2()函數(shù)的例子:
- NVL2(comm, ‘sal+comm’, sal),如果comm為空值,則返回sal的值,否則返回sal+comm的值。
例子:
select ename,NVL(TO_char(comm), ename||' is not a salesperson!') AS COMMISSION from emp
sql中nvl和nvl2的區(qū)別
NVL(表達(dá)式1,表達(dá)式2)
如果表達(dá)式1為空值,NVL返回值為表達(dá)式2的值,否則返回表達(dá)式1的值。該函數(shù)的目的是把一個(gè)空值(null)轉(zhuǎn)換成一個(gè)實(shí)際的值。其表達(dá)式的值可以是數(shù)字型、字符型和日期型。但是表達(dá)式1和表達(dá)式2的數(shù)據(jù)類(lèi)型必須為同一個(gè)類(lèi)型
NVL2(表達(dá)式1,表達(dá)式2,表達(dá)式3)
如果表達(dá)式1為空,返回值為表達(dá)式3的值。如果表達(dá)式1不為空,返回值為表達(dá)式2的值
select '' from dual; --結(jié)果: '' select nvl('',0) from dual; --結(jié)果: 0 select nvl2('','1','2') from dual; --結(jié)果:2 select nvl2('0','1','2') from dual; --結(jié)果:1
到此這篇關(guān)于SQL中NVL()函數(shù)的用法的文章就介紹到這了,更多相關(guān)SQL NVL()函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Microsoft SQLServer的版本區(qū)別及選擇
Microsoft SQLServer的版本區(qū)別及選擇...2007-02-02安裝sqlserver2000時(shí)出現(xiàn)wowexec.exe無(wú)反應(yīng)的解決方法
wowexec.exe是操作系統(tǒng)相關(guān)程序,用于支持16位進(jìn)程,而wowexec 或者 wowexec.exe則是當(dāng)硬盤(pán)上的文件碎片過(guò)多時(shí),系統(tǒng)自動(dòng)進(jìn)行碎片整理2013-04-04SQL Server中使用SQL語(yǔ)句實(shí)現(xiàn)把重復(fù)行數(shù)據(jù)合并為一行并用逗號(hào)分隔
這篇文章主要介紹了SQL Sever中使用SQL語(yǔ)句實(shí)現(xiàn)把重復(fù)行數(shù)據(jù)合并為一行并用逗號(hào)分隔,本文給出了兩種實(shí)現(xiàn)方式,需要的朋友可以參考下2015-02-02一次SQL查詢(xún)優(yōu)化原理分析(900W+數(shù)據(jù)從17s到300ms)
本文主要介紹了一次SQL查詢(xún)優(yōu)化原理分析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06存儲(chǔ)過(guò)程實(shí)現(xiàn)訂單號(hào),流水單號(hào)(8位)的詳細(xì)思路
存儲(chǔ)過(guò)程實(shí)現(xiàn)訂單號(hào),流水單號(hào)是一個(gè)比較不錯(cuò)的功能,在處理訂單方面起到一個(gè)不錯(cuò)的作用;此文章是借鑒園中的各位大神的,本人只是略作修改。有不好的地方,歡迎吐槽2013-01-01T-SQL查詢(xún)?yōu)楹紊饔肐N和NOT?IN詳解
IN和NOT?IN是比較常用的關(guān)鍵字,為什么要盡量避免呢?這篇文章主要給大家介紹了關(guān)于T-SQL查詢(xún)?yōu)楹紊饔?IN和NOT?IN的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-02-02SQL中Group分組獲取Top N方法實(shí)現(xiàn)可首選row_number
統(tǒng)計(jì)每個(gè)城市的最新10個(gè)產(chǎn)品本文采用了游標(biāo)方法/Count查詢(xún)/cross apply方法/row_number方法等等對(duì)比不難發(fā)現(xiàn)Group獲取Top N場(chǎng)景時(shí),可以首選row_number,游標(biāo)cursor其次,另外兩個(gè)就基本不考慮了2013-03-03