關於null的操作

2021-09-07 09:46:21 字數 2400 閱讀 7141

空值

空值一般用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 查詢結果集中只有...