oracle if后面为null,Oracle中NVL2 和NULLIF的用法
NULL指的是空值,或者非法值。
NVL (expr1, expr2)->expr1為NULL,返回expr2;不為NULL,返回expr1。注意兩者的類型要一致
NVL2 (expr1, expr2, expr3) ->expr1不為NULL,返回expr2;為NULL,返回expr3。expr2和expr3類型不同的話,expr3會轉(zhuǎn)換為expr2的類型
NULLIF (expr1, expr2) ->相等返回NULL,不等返回expr1
詳細的::
oracle的nvl函數(shù)的用法
通過查詢獲得某個字段的合計值,如果這個值位null將給出一個預(yù)設(shè)的默認值
select nvl(sum(t.dwxhl),1) from tb_jhde t where
zydm=-1這里關(guān)心的nvl的用法,nvl(arg,value)代表如果前面的arg的值為null那么返回的值為后面的value
如: NVL(a,b)就是判斷a是否是NULL,如果不是返回a的值,如果是返回b的值
通過查詢獲得某個字段的合計值,如果這個值位null將給出一個預(yù)設(shè)的默認值
select nvl(sum(t.dwxhl),1) from tb_jhde t where
zydm=-1這里關(guān)心的nvl的用法,nvl(arg,value)代表如果前面的arg的值為null那么返回的值為后面的value
中國網(wǎng)管聯(lián)盟
另一個有關(guān)的有用方法
declare
i integer
select nvl(sum(t.dwxhl),1) into i from tb_jhde t where
zydm=-1這樣就可以把獲得的合計值存儲到變量i中,如果查詢的值為null就把它的值設(shè)置為默認的1
Oracle得Nvl函數(shù)
nvl( ) 函數(shù)
從兩個表達式返回一個非 null 值。
語法
NVL(eExpression1, eExpression2)
參數(shù)
eExpression1, eExpression2
如 果 eExpression1 的計算結(jié)果為 null 值,則 NVL( ) 返回 eExpression2。如果
eExpression1 的計算結(jié)果不是 null 值,則返回 eExpression1。eExpression1 和
eExpression2 可以是任意一種數(shù)據(jù)類型。如果 eExpression1 與 eExpression2 的結(jié)果皆為 null
值,則 NVL( ) 返回 .NULL.。
返回值類型
字符型、日期型、日期時間型、數(shù)值型、貨幣型、邏輯型或 null 值
說明
在不支持 null 值或 null 值無關(guān)緊要的情況下,可以使用 NVL( ) 來移去計算或操作中的 null 值。
select nvl(a.name,'空得') as name
from?student a join school b on a.ID=b.ID
注意:兩個參數(shù)得類型要匹配
問:什么是NULL?
答:在我們不知道具體有什么數(shù)據(jù)的時候,也即未知,可以用NULL,
我們稱它為空,ORACLE中,含有空值的表列長度為零。
ORACLE允許任何一種數(shù)據(jù)類型的字段為空,除了以下兩種情況:
1、主鍵字段(primary key),
2、定義時已經(jīng)加了NOT NULL限制條件的字段
總結(jié)
以上是生活随笔為你收集整理的oracle if后面为null,Oracle中NVL2 和NULLIF的用法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle最新scn补丁,更新:Ora
- 下一篇: 利用oracle执行系统命令,利用ora