oracle 中關於null的操作

2021-09-07 09:46:21 字數 2009 閱讀 3256

空值

空值一般用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 ...