欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Oracle中nvl()和nvl2()函數(shù)實(shí)例詳解

 更新時(shí)間:2022年05月18日 10:19:33   作者:實(shí)澤有之,無(wú)澤虛之  
NVL函數(shù)的功能是實(shí)現(xiàn)空值的轉(zhuǎn)換,根據(jù)第一個(gè)表達(dá)式的值是否為空值來(lái)返回響應(yīng)的列名或表達(dá)式,下面這篇文章主要給大家介紹了關(guān)于Oracle中nvl()和nvl2()函數(shù)的相關(guān)資料,需要的朋友可以參考下

Oracle中nvl()與nvl2()函數(shù)詳解:

  • 函數(shù)nvl(expression1,expression2)根據(jù)參數(shù)1是否為null返回參數(shù)1或參數(shù)2的值;
  • 函數(shù)nvl2(expression1,expression2,expression3)根據(jù)參數(shù)1是否為null返回參數(shù)2或參數(shù)3的值。

1.nvl:根據(jù)參數(shù)1是否為null返回參數(shù)1或參數(shù)2的值

【函數(shù)格式】:nvl(expression1,expression2)

【函數(shù)說(shuō)明】:

  • 若expression1值為null,則該函數(shù)返回expression2;
  • 若expression1值不為null,則該函數(shù)返回expression1;
  • 若expression1、expression2的值均為null,則該函數(shù)返回null。

【特別說(shuō)明】:參數(shù)expression1和expression2可以是字符型、數(shù)字型或日期型,但參數(shù)expression1與expression2的類(lèi)型必須一致。

【樣例展示一】:expression1值為null:

expression2為字符型:

select nvl(null,'ABCD') from dual;        --返回:ABCD
select nvl(null,'abcd') from dual;        --返回:abcd
select nvl(null,'12345') from dual;        --返回:12345

expression2為數(shù)值型:

select nvl(null,12345) from dual;        --返回:12345
select nvl(null,00000) from dual;        --返回:0
select nvl(null,-12345) from dual;        --返回:-12345
select nvl(null,123.45) from dual;        --返回:123.45
select nvl(null,-123.45) from dual;        --返回:-123.45

expression2為日期時(shí)間型:

select nvl(null,sysdate) from dual;        --返回:2022/2/25 11:54:18
select nvl(null,to_date('2022/2/25 11:54:18','yyyy-mm-dd hh24:mi:ss')) from dual;                        --返回:2022/2/25 11:54:18
select nvl(null,to_date('2022/2/25','yyyy-mm-dd')) from dual;        --返回:2022/2/25
select nvl(null,to_date('2022','yyyy')) from dual;        --返回:2022/2/1

【樣例展示二】:expression1值不為null:

expression1為字符型:

select nvl('ABCD','abcd') from dual;        --返回:ABCD
select nvl('abcd','ABCD') from dual;           --返回:abcd
select nvl('12345','54321') from dual;        --返回:12345

expression1為數(shù)值型:

select nvl(12345,null) from dual;        --返回:12345
select nvl(00000,11111) from dual;        --返回:0
select nvl(-12345,null) from dual;        --返回:-12345
select nvl(123.45,-123.45) from dual;        --返回:123.45
select nvl(-123.45,123.45) from dual;        --返回:-123.45

expression1為日期時(shí)間型:

select nvl(sysdate,null) from dual;        --返回:2022/2/25 12:18:23
select nvl(to_date('2022/2/25 12:18:23','yyyy-mm-dd hh24:mi:ss'),null) from dual;                        --返回:2022/2/25 12:18:23
select nvl(to_date('2022/2/25','yyyy-mm-dd'),null) from dual;        --返回:2022/2/25
select nvl(to_date('2022','yyyy'),null) from dual;        --返回:2022/2/1

【樣例展示三】:expression1、expression2值均為null:

select nvl(null,null) from dual;        --返回空值
select nvl('',null) from dual;        --返回空值
select nvl(null,'') from dual;        --返回空值
select nvl('','') from dual;        --返回空值

2.nvl2:根據(jù)參數(shù)1是否為null返回參數(shù)2或參數(shù)3的值

【函數(shù)格式】:nvl2(expression1,expression2,expression3)

【函數(shù)說(shuō)明】:

  • 若expression1值不為null,則該函數(shù)返回expression2值;
  • 若expression1值為null,則該函數(shù)返回expression3值;
  • 若expression1、expression2、expression3值均為null,則該函數(shù)返回null。

【特別說(shuō)明】:

  • expression1的類(lèi)型不需要與expression2和expression3的類(lèi)型保持一致;
  • expression2與expression3的類(lèi)型盡量保持一致,若不一致,當(dāng)expression1為null時(shí),則expression3會(huì)自動(dòng)轉(zhuǎn)換為expression2的類(lèi)型,若兩個(gè)數(shù)據(jù)類(lèi)型之間無(wú)法轉(zhuǎn)換,則會(huì)報(bào)錯(cuò)。

【樣例展示一】:expression1值不為null:

expression2和expression3均為字符型:

select nvl2(0,'ABCD','abcd') from dual;        --返回:ABCD
select nvl2('a','ABCD','1234') from dual;        --返回:ABCD
select nvl2(sysdate,'1234','abcd') from dual;        --返回:1234

expression2和expression3均為數(shù)值型:

select nvl2(0,12345,54321) from dual;        --返回:12345
select nvl2('a',123.45,543.21) from dual;        --返回:123.45
select nvl2(sysdate,-12345,-54321) from dual;        --返回:-12345

expression2和expression3數(shù)據(jù)類(lèi)型不一致:

        注意:此時(shí)expression1有值,因此該函數(shù)直接返回expression2的值,即使expression3的類(lèi)型無(wú)法轉(zhuǎn)換為expression2的類(lèi)型也不會(huì)報(bào)錯(cuò)。

select nvl2(0,'ABCD',54321) from dual;        --返回:ABCD
select nvl2('a','abcd',543.21) from dual;        --返回:abcd
select nvl2(sysdate,'12345',-54321) from dual;        --返回:12345

【樣例展示二】:expression1值為null:

expression2和expression3均為字符型:

select nvl2(null,'ABCD','abcd') from dual;        --返回:abcd
select nvl2('','ABCD','1234') from dual;        --返回:1234

expression2和expression3均為數(shù)值型:

select nvl2(null,12345,54321) from dual;        --返回:54321
select nvl2('',123.45,543.21) from dual;        --返回:543.21

expression2和expression3數(shù)據(jù)類(lèi)型不一致:

        注意:此時(shí)expression1值為null,因此該函數(shù)會(huì)返回expression3的值,若expression3的類(lèi)型無(wú)法轉(zhuǎn)換為expression2的類(lèi)型,則會(huì)報(bào)錯(cuò)。

select nvl2(null,'ABCD',54321) from dual;        --返回:54321
select nvl2('','abcd',543.21) from dual;        --返回:543.21
select nvl2('',543.21,'abcd') from dual;        --執(zhí)行報(bào)錯(cuò)
select nvl2(null,'abcd',sysdate) from dual;        --返回:25-2月 -22
select nvl2(null,sysdate,'abcd') from dual;        --執(zhí)行報(bào)錯(cuò)

【樣例展示三】:expression1為null,且expression2或expression3值為null:

select nvl2(null,null,'123') from dual;        --返回:123
select nvl2(null,'abc',null) from dual;        --返回:空值
select nvl2(null,null,null) from dual;        --返回:空值
select nvl2('','','') from dual;        --返回:空值

總結(jié)

到此這篇關(guān)于Oracle中nvl()和nvl2()函數(shù)詳解的文章就介紹到這了,更多相關(guān)Oracle nvl()和nvl2()函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Oracle基礎(chǔ):程序中調(diào)用sqlplus的方式

    Oracle基礎(chǔ):程序中調(diào)用sqlplus的方式

    今天小編就為大家分享一篇關(guān)于Oracle基礎(chǔ):程序中調(diào)用sqlplus的方式,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-12-12
  • 關(guān)于Oracle數(shù)據(jù)庫(kù)dbLink的創(chuàng)建和使用詳解

    關(guān)于Oracle數(shù)據(jù)庫(kù)dbLink的創(chuàng)建和使用詳解

    這篇文章主要介紹了關(guān)于Oracle數(shù)據(jù)庫(kù)dbLink的創(chuàng)建和使用詳解,Oracle的數(shù)據(jù)庫(kù)鏈路dbLink是一種允許在兩個(gè)不同的數(shù)據(jù)庫(kù)實(shí)例之間進(jìn)行通信和數(shù)據(jù)交換的功能,它可以讓你在一個(gè)數(shù)據(jù)庫(kù)中訪問(wèn)另一個(gè)數(shù)據(jù)庫(kù)的對(duì)象和數(shù)據(jù),需要的朋友可以參考下
    2023-08-08
  • Oracle中is和as的區(qū)別和使用

    Oracle中is和as的區(qū)別和使用

    在Oracle數(shù)據(jù)庫(kù)中,AS和IS是兩個(gè)常用的關(guān)鍵字,它們分別表示“命名別名”和“判斷是否相同”,AS和IS的主要區(qū)別在于它們的功能,AS是一種授權(quán)服務(wù),它負(fù)責(zé)授予和管理用戶訪問(wèn)數(shù)據(jù)庫(kù)特定對(duì)象和操作的權(quán)限,IS則是一種身份驗(yàn)證服務(wù),它負(fù)責(zé)管理用戶的身份和訪問(wèn)權(quán)限
    2024-01-01
  • Oracle7.X 回滾表空間數(shù)據(jù)文件誤刪除處理方法

    Oracle7.X 回滾表空間數(shù)據(jù)文件誤刪除處理方法

    Oracle7.X 回滾表空間數(shù)據(jù)文件誤刪除處理方法...
    2007-03-03
  • Oracle數(shù)據(jù)庫(kù)常用命令整理(實(shí)用方法)

    Oracle數(shù)據(jù)庫(kù)常用命令整理(實(shí)用方法)

    這篇文章主要介紹了Oracle數(shù)據(jù)庫(kù)常用命令整理(實(shí)用方法),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Oracle 如何規(guī)范清理v$archived_log記錄實(shí)例詳解

    Oracle 如何規(guī)范清理v$archived_log記錄實(shí)例詳解

    這篇文章主要介紹了Oracle 如何規(guī)范清理v$archived_log記錄實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • Oracle中查詢表結(jié)構(gòu)的6種方法總結(jié)

    Oracle中查詢表結(jié)構(gòu)的6種方法總結(jié)

    工作中查看oracle表結(jié)構(gòu)經(jīng)常會(huì)遇到,下面這篇文章主要給大家介紹了關(guān)于Oracle中查詢表結(jié)構(gòu)的6種方法,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-04-04
  • windows 7安裝ORACLE 10g客戶端的方法分享

    windows 7安裝ORACLE 10g客戶端的方法分享

    因?yàn)閛racle 10g暫時(shí)沒(méi)有與win7兼容的版本,我們可以通過(guò)對(duì)安裝軟件中某些文件的修改達(dá)到安裝的目地
    2012-07-07
  • oracle查詢截至到當(dāng)前日期月份所在年份的所有月份

    oracle查詢截至到當(dāng)前日期月份所在年份的所有月份

    這篇文章主要介紹了oracle查詢截至到當(dāng)前日期月份所在年份的所有月份,本文通過(guò)代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2019-07-07
  • Oracle中的INSTR,NVL和SUBSTR函數(shù)的用法詳解

    Oracle中的INSTR,NVL和SUBSTR函數(shù)的用法詳解

    這篇文章主要介紹了Oracle中的INSTR,NVL和SUBSTR函數(shù)的用法詳解,需要的朋友可以參考下
    2017-02-02

最新評(píng)論