oracle中對null值的處理

2021-08-31 08:14:41 字數 732 閱讀 7257

1.在oracle的運算表示式中,如果表示式的某個值為null,則整個表示式的結果就會為null.

就拿oracle自帶的emp表為例,想要計算出每位員工的年工資,如果使用下面這個sql語句:

select sal*12+comm*12 "年工資",ename from emp;

因為只有"saleman"的comm不為null,其他型別的員工的comm為null,當comm為null時,使用這個

表示式sal*12+comm*12計算出的結果為null,顯然這樣不對.

如何對這種情況進行處理呢?可以使用orale的nvl(comm,0)函式,該函式的意思是:當comm為

null時,使comm=0,那麼表示式的正確寫法為:sal*12+nvl(comm,0)*12

從而正確的sql語句:

[color=red]select sal*12+nvl(comm,0)*12 "年工資",ename from emp;[/color]

2.還有一點要注意的是:

[color=red]當查詢值為null的記錄時,不能使用「列名=null」的形式,應該使用"列名 is null"。[/color]

如:查出emp表中comm為null的所有員工

錯誤的sql: select * from emp where comm = null;

[color=red]正確的sql: select * from emp where comm is null;[/color]

Convert和Parse對null值處理的區別

型別的轉換在日常的變成中是經常被用到的,我們最常用的型別轉換的方法就是convert和parse,下面來說一下這兩者null值處理的區別。int i1 convert.toint32 null i1 0 int i2 int32.parse null throw an expection value...

oracle 中null 值對排序的影響

size large color red oracle 中null 值對排序的影響 color size size medium 問題處理 方法1 使用nvl函式 語法 nvl expr1,expr2 若expr1是null,則返回expr2,否則返回expr1.認識了nvl的語法,就可以在排序中使...

oracle中NULL值處理

1 nvl expr1,expr2 功能 1 expr1 expr2均不為null時,返回expr1 2 expr1 expr2均為null時,返回null 3 expr1為null,expr2不為null,返回expr2 4 expr1不為null,expr2為null,返回expr1。2 nvl...