空值
空值一般用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。
3、nullif函式
格式:nullif(表示式1,表示式2)
作用:當表示式1的值等於表示式2的值,返回空.如果表示式1的值不等於表示式2的值,返回表示式1的值
這個函式相當於case when 表示式1=表示式2 then null else 表示式1 end
上面這段sql的作用是,當***為0時(這裡代表女性),返回null。
oracle 中關於null的操作
空值 空值一般用null表示 一般表示未知的 不確定的值,也不是空格 一般運算子與其進行運算時,都會為空 空不與任何值相等 表示某個列為空用 is null 不能使用comm null這種形式 某個列不為空 is not null 不能使用comm null 這種形式 空值在作公升序排列時,空值會放...
技巧 關於null值的查詢
1 null表示未知的資料變數,與 是有區別的。2 null的比較運算 is null 和 is not null 如 查詢某字段為null的記錄 select from tablename from fieldname is null 也可以這樣 select from tablename fro...
mysql關於null值的使用
null值的處理是mysql經常被混淆的概念之一,也是查詢中經常會犯迷糊的地方,做下簡單整理以便日後查詢 自己理解的 1 null值只能用is null is not null和ifnull 判斷,不能進行任何比較運算,其他 in,not in.與null的比較都無任何資料返回 2 查詢結果集中只有...