oracle 對 Null的處理

2021-08-30 10:36:05 字數 1894 閱讀 7677

1、預設處理

oracle在order by 時預設認為null是最大值,所以如果是asc公升序則排在最後,desc降序則排在最前

2、使用nvl函式

nvl函式可以將輸入引數為空時轉換為一特定值,如

nvl(employee_name,』張三』)表示當employee_name為空時則返回』張三』,如果不為空則返回employee_name

通過這個函式可以定製null的排序位置。

3、使用decode函式

decode函式比nvl函式更強大,同樣它也可以將輸入引數為空時轉換為一特定值,如

decode(employee_name,null,』張三』, employee_name)表示當employee_name為空時則返回』張三』,如果不為空則返回employee_name

通過這個函式可以定製null的排序位置。

4、使用case語法

case語法是oracle 9i後開始支援的,是乙個比較靈活的語法,同樣在排序中也可以應用

如:select*

fromemployee

orderby(caseemployee_name

whennullthen

'張三'

else

employee_name

end)

表示當employee_name為空時則返回』張三』,如果不為空則返回employee_name

通過case語法同樣可以定製null的排序位置。

5、使用nulls first或者nulls last語法

nulls first和nulls last是oracle order by支援的語法

如果order by 中指定了表示式nulls first則表示null值的記錄將排在最前(不管是asc 還是 desc)

如果order by 中指定了表示式nulls last則表示null值的記錄將排在最後 (不管是asc 還是 desc)

使用語法如下:

--將nulls始終放在最前

select*fromzl_cbqcorderbycb_ldnullsfirst

--將nulls始終放在最後

select*fromzl_cbqcorderbycb_lddescnullslast

oracle中對null值的處理

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

mysql 對null的處理

首先null並不是空,而表示 沒有值 或 未知值 null不屬於任何型別 1.當建立乙個表,字段約束沒有指定為not null時,沒有新增資料時預設為null,不管是整型還是字元型別 如.create table test arg1 varchar 30 arg2 int select from t...

MySQL查詢對NULL的處理

有乙個欄位blist,如果查詢where blist b 時為什麼那些blist為null的記錄查不出?怎麼寫才能查出null值記錄?回答 null 值不能使用普通的算術運算子來比較,對這些它什麼都不返回。只能靠你自己的邏輯流程,在查詢語句中再新增where blist b or blist is ...