SQL中NVL()函數(shù)的用法
SQL中的NVL()函數(shù)是一個空值轉(zhuǎn)換函數(shù),其語法為:NVL(expr1, expr2)。如果expr1為空值,則NVL()函數(shù)返回expr2的值,否則返回expr1的值。該函數(shù)的目的是將空值轉(zhuǎn)換為實際的值。expr1和expr2的數(shù)據(jù)類型必須為同一類型,可以是數(shù)字型、字符型和日期型。
以下是一些NVL()函數(shù)的例子:
- 對于數(shù)字型:NVL(comm, 0),如果comm為空值,則返回0,否則返回comm的值。
- 對于字符型:NVL(TO_CHAR(comm), ‘No Commission’),如果comm為空值,則返回字符串’No Commission’,否則返回comm的字符串值。
- 對于日期型:NVL(hiredate, ‘31-DEC-99’),如果hiredate為空值,則返回日期’31-DEC-99’,否則返回hiredate的日期值。
除了NVL()函數(shù)外,SQL還有一個類似的函數(shù)NVL2(),其語法為:NVL2(expr1, expr2, expr3)。如果expr1為空值,則返回expr3的值,否則返回expr2的值。
以下是一個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ù)的目的是把一個空值(null)轉(zhuǎn)換成一個實際的值。其表達(dá)式的值可以是數(shù)字型、字符型和日期型。但是表達(dá)式1和表達(dá)式2的數(shù)據(jù)類型必須為同一個類型
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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Docker部署SQL Server并導(dǎo)入.mdb文件的完整指南
最近在項目中遇到一個需求,需要從 .mdb 文件中提取特定數(shù)據(jù)并導(dǎo)入到現(xiàn)有系統(tǒng)數(shù)據(jù)庫中,于是,我重新查閱資料,整理了以下關(guān)于如何使用 Docker 部署 SQL Server 并導(dǎo)入 .mdb 文件的步驟,需要的朋友可以參考下2026-02-02
Navicat連接SQL Server數(shù)據(jù):報錯08001-命名管道提供程序的完美解決方法
小編新安裝了sqlserver用navicat進(jìn)行連接時出現(xiàn)一系列問題,不知道該怎么解決,小編小編給大家分享一篇教程關(guān)于Navicat連接SQL Server數(shù)據(jù):報錯08001-命名管道提供程序的問題,感興趣的朋友一起看看吧2021-08-08
SQL?Server刪除正在恢復(fù)數(shù)據(jù)庫的三種方法
本文介紹了三種刪除卡住的SQL?Server數(shù)據(jù)庫的方法:嘗試完成恢復(fù)后再刪除、強(qiáng)制終止恢復(fù)進(jìn)程并刪除、以及強(qiáng)制離線后刪除,每種方法都有其適用場景和注意事項,需要的朋友可以參考下2026-03-03
SQL Server 數(shù)據(jù)庫每天自動備份作業(yè)操作圖文詳解
這篇文章主要介紹了SQL Server 數(shù)據(jù)庫每天自動備份的設(shè)置方法,然后可以通過rsync定時同步到別的服務(wù)器上,通過bak還原數(shù)據(jù)庫也可以達(dá)到每天備份的目的2024-04-04
如何恢復(fù)SQL Server 2000損壞的數(shù)據(jù)庫文件
在現(xiàn)實情況中由于硬件和軟件的原因可能導(dǎo)致數(shù)據(jù)庫文件損壞,那么損壞的數(shù)據(jù)庫文件有沒有辦法修復(fù)呢?下面講講如何恢復(fù)SQL Server 2000損壞的數(shù)據(jù)庫文件2014-01-01

