在oracle中,可利用nvl()函數進行空值替換,該函數用於從兩個表達式中返回一個非null值,語法為「nvl(字段值,替換值)」;當欄位值的結果為null值時,函數會傳回替換值,如果欄位值的結果不是null值,則函數會傳回原始欄位值。
本教學操作環境:Windows10系統、Oracle 11g版、Dell G3電腦。
nvl 如果某個欄位為空,想讓它顯示成0或其他的數值,可以使用nvl函數,如nvl(欄位名,取代值)
從兩個表達式傳回一個非null 值。
語法
NVL(eExpression1, eExpression2)
如果 eExpression1 的計算結果為 null 值,則 NVL( ) 傳回 eExpression2。如果 eExpression1 的計算結果不是 null 值,則傳回 eExpression1。 eExpression1 和 eExpression2 可以是任一種資料型態。如果 eExpression1 與 eExpression2 的結果皆為 null 值,則 NVL( ) 傳回 .NULL.。
傳回值類型
字元型、日期型、日期時間型、數值型、貨幣型、邏輯型或null 值
在不支援null 值或null 值無關緊要的情況下,可以使用NVL( ) 來移去計算或操作中的null 值。
select nvl(a.name,'空得') as name from student a join school b on a.ID=b.ID
注意:兩個參數要類型要匹配
SELECT T.D_FDATE, T.VC_ZHCODE, NVL(SUM(T.F_FZQSZ), 0) f_price_b, NVL(SUM(T.F_FZQCB), 0) f_cost_b, NVL(SUM(T.F_FGZ_ZZ), 0) f_gz_b, NVL(SUM(T.F_FYZQSZ), 0) f_price_Y, NVL(SUM(T.F_FYZQCB), 0) f_cost_Y, NVL(SUM(T.F_FYGZ_ZZ), 0) f_gz_Y, T.VC_SOURCE, SYSDATE d_updatetime FROM GZ_FUND_GZB T
例如這樣的判斷就很重要啦,因為你不知道哪一行是is not null 的,也不知道接下來是否要對這個單元格進行運算操作,因此,不能給列填null,就給它一個0 ,便於查看,也便於運算。
推薦教學:《Oracle教學》
以上是oracle怎麼進行空值替換的詳細內容。更多資訊請關注PHP中文網其他相關文章!