空值
空值一般用null表示
一般表示未知的、不確定的值,也不是空格
一般運算子與其進行運算時,都會為空
空不與任何值相等
表示某個列為空用:is null 不能使用comm=null這種形式
某個列不為空:is not null 不能使用comm != null 這種形式
空值在作公升序排列時,空值會放到最後。
相反作降序排列時,空值會放在最前。
空值作邏輯運算時:
and運算:
f and f =f f and t =f f and null =f
t and f =f t and t =t t and null is null
null and f =f null and t is null null and null is null
就是說and的優先順序是:f ->null ->t
or運算:
t or t =t t or f =t t or null =t
f or t =t f or f =f f or null is null
null or t =t null or f is null null or null is null
or運算優先順序:t ->null ->f
not運算:
not t =f
not f =t
not null is null
nvl 函式
格式:nvl(表示式1,表示式2)
作用:測試表示式的值,如果表示式1為空,則返回表示式2的值;不為空,返回表示式1的值。
nvl2 函式
格式:nvl2(表示式1,表示式2,表示式3)
作用:測試表示式的值,表示式1不為空,返回表示式2的值,如果為空,則返回表示式3的值。
nullif 相等為空
格式:nullif (表示式1,表示式2)
作用:比較表示式1和表示式2的值,如果兩個相等則返回為空,否則返回表示式1的值。
coalesce 找非空
格式:coalesce (表示式1,表示式2,表示式3,...,表示式n)
作用:返回第乙個不為空的值,如果所有的都為空,則返回null。
演示:
create建表語句table
test6(
id varchar2(30
), name
varchar2(30
), age
number(2
), ***
varchar2(2
))
結果集1、nvl函式
select id,name,nvl(to_char(age),'未錄入'),nvl(to_char(***),'
未錄入') from test6
2、nvl2函式
格式:nvl2(表示式1,表示式2,表示式3)
作用:測試表示式的值,表示式1不為空,返回表示式2的值,如果表示式1不為空,則返回表示式3的值。
運算方式和?:運算規則一致當to_char(age)不為空(true)時,執行2*(age+***),否則就執行後面的表示式age
注意:null和任何數進行算數操作,其返回值都是null。
oracle 關於null值排序
在oracle中根據欄位來desc排序的話null值可能會在資料的最前面。然而有時候我們檢視資料的時候並不希望能夠在前面看到這些null值的排序資料。因此我查了一下 1.排序的時候運用nvl decode case.when.函式可以給null值指定乙個值去干擾他排序的位置,如果nvl xx,則是不...
Oracle中null的使用
問 什麼是null?答 在我們不知道具體有什麼資料的時候,也即未知,可以用null,我們稱它為空,oracle中,含有空值的表列長度為零。oracle允許任何一種資料型別的字段為空,除了以下兩種情況 1 主鍵字段 primary key 2 定義時已經加了not null限制條件的字段 說明 1 等...
關於oracle中 及 null 使用注意點
title stepname 關於繼續開展下半年度集團早高峰保駕工作的通知 傳閱 關於繼續開展下半年度集團早高峰保駕工作的通知 null 關於配合國資委協同辦公平台統一許可權配置的相關事宜 null 執行如下語句 select t.title,t.stepname from t todo item ...