Oracle中NULL值相關問題

2021-04-25 20:05:57 字數 707 閱讀 6177

null值不等於0,也不等於空,它表示該值不定。

任何運算(加減乘除、字串連線等)的運算數中包括null值時,整個表示式的值即為null。使用單行函式對null值進行處理,得到的結果也為null(nvl等函式除外)。

但是null值的布林運算結果並不一定是null,例外的情況為,false and null 結果為false,true or null 結果為true。這是因為在and運算時只要有乙個運算數為false結果即為false,即使另乙個運算數為null,結果也是一定為false的。反之or運算中,只要有乙個運算數為true,結果即為true。

分組函式均忽略null值。

排序時,null被看作是最大的值,即正序時null顯示在最下方,逆序時null顯示在最上方。

處理null值的函式有如下幾個:

nvl(引數1, 引數2):如果引數1不為null,則返回引數1;如果引數1為null,則返回引數2

nvl2(引數1, 引數2, 引數3):如果引數1不為null,則返回引數2;如果引數1為null,則返回引數3。該函式的返回值的型別總是與引數2相同,當引數1為null時,oracle會將引數3轉換成引數2的資料型別之後再返回。

nullif(引數1, 引數2) :如果引數1等於引數2,則返回null;如果引數1不等於引數2,則返回引數1。

coalesce(引數1, 引數2, ..., 引數n):返回引數1到引數n中第乙個不為null的值。

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...

Oracle排序中null值處理

1 預設處理 oracle 在order by 時預設認為null是最大值,所以如果是asc公升序則排在最後,desc降序則排在最前 2 使用nvl函式 nvl函式可以將輸入引數為空時轉換為一特定值,如 nvl employee name,張三 表示當employee name為空時則返回 張三 如...

oracle中對null值的處理

1.在oracle的運算表示式中,如果表示式的某個值為null,則整個表示式的結果就會為null.就拿oracle自帶的emp表為例,想要計算出每位員工的年工資,如果使用下面這個sql語句 select sal 12 comm 12 年工資 ename from emp 因為只有 saleman 的...