SQL 中 NULL值測(cè)試代碼
更新時(shí)間:2011年04月14日 23:30:44 作者:
在SQL語句中,where 子句:where t.modifier = null ,這里不可以使用NULL關(guān)鍵字,因?yàn)樗皇且粋€(gè)真正的值,它僅僅是一個(gè)符號(hào),因?yàn)樗闹凳俏粗摹?/div>
剛剛想從數(shù)據(jù)庫中的表EXPERT_DETAILS中檢索出修改人Modifier(類型 VARCHAR2(20),可為空)為空的那些記錄,因?yàn)樵撟侄蔚念愋蜑閂ARCHAR2(20),我使用的SQL語句為
select * from expert_details twhere t.modifier = ''
沒有檢索出一條記錄,而這與存儲(chǔ)在該表中的記錄是不相符的。后來想到即便是空字符型存儲(chǔ)在數(shù)據(jù)庫中也應(yīng)該是NULL而不是''。
然后我使用下列SQL 語句,仍然沒有檢索出一條記錄。
select * from expert_details t
where t.modifier = null
最后我想到了SQL中的NULL 值測(cè)試。使用如下語句,終于檢索出了想要的結(jié)果。
select * from expert_details t
where t.modifier is null
在SQL語句中,where 子句:where t.modifier = null ,這里不可以使用NULL關(guān)鍵字,因?yàn)樗皇且粋€(gè)真正的值,它僅僅是一個(gè)符號(hào),因?yàn)樗闹凳俏粗?。?dāng)t.modifier本身就是null時(shí),即where子句為:where null= null ,當(dāng)?shù)忍?hào)兩邊的值都是未知的時(shí)候,結(jié)果是TRUE還是FALSE,SQL不能給出一個(gè)明確的結(jié)果,所以查詢出的結(jié)果也為NULL。
因此必須明確使用NULL值測(cè)試即 字段 IS NULL 或者其否定形式 字段 IS NOT NULL 來檢測(cè)NULL值。
復(fù)制代碼 代碼如下:
select * from expert_details twhere t.modifier = ''
沒有檢索出一條記錄,而這與存儲(chǔ)在該表中的記錄是不相符的。后來想到即便是空字符型存儲(chǔ)在數(shù)據(jù)庫中也應(yīng)該是NULL而不是''。
然后我使用下列SQL 語句,仍然沒有檢索出一條記錄。
復(fù)制代碼 代碼如下:
select * from expert_details t
where t.modifier = null
最后我想到了SQL中的NULL 值測(cè)試。使用如下語句,終于檢索出了想要的結(jié)果。
復(fù)制代碼 代碼如下:
select * from expert_details t
where t.modifier is null
在SQL語句中,where 子句:where t.modifier = null ,這里不可以使用NULL關(guān)鍵字,因?yàn)樗皇且粋€(gè)真正的值,它僅僅是一個(gè)符號(hào),因?yàn)樗闹凳俏粗?。?dāng)t.modifier本身就是null時(shí),即where子句為:where null= null ,當(dāng)?shù)忍?hào)兩邊的值都是未知的時(shí)候,結(jié)果是TRUE還是FALSE,SQL不能給出一個(gè)明確的結(jié)果,所以查詢出的結(jié)果也為NULL。
因此必須明確使用NULL值測(cè)試即 字段 IS NULL 或者其否定形式 字段 IS NOT NULL 來檢測(cè)NULL值。
相關(guān)文章
SQL Server誤區(qū)30日談 第1天 正在運(yùn)行的事務(wù)在服務(wù)器故障轉(zhuǎn)移后繼續(xù)執(zhí)行
每次故障轉(zhuǎn)移都伴隨著某種形式的恢復(fù)。但是如果當(dāng)正在執(zhí)行的事務(wù)沒有Commit時(shí),由于服務(wù)器或?qū)嵗罎?dǎo)致連接斷開,SQL Server可沒有辦法在故障轉(zhuǎn)移后的服務(wù)器重新建立事務(wù)的上下文并繼續(xù)執(zhí)行事務(wù)-無論你使用的故障轉(zhuǎn)移方式是集群,鏡像,日志傳送或是SAN復(fù)制2013-01-01
SQL 獲取所有上級(jí)的實(shí)現(xiàn)方法
這篇文章主要介紹了SQL 獲取所有上級(jí)的實(shí)現(xiàn)方法的相關(guān)資料,需要的朋友可以參考下2017-04-04
uniqueidentifier轉(zhuǎn)換成varchar數(shù)據(jù)類型的sql語句
uniqueidentifier轉(zhuǎn)換成varchar數(shù)據(jù)類型的sql語句,需要的朋友可以參考下。2011-09-09
使用SQL Server 獲取插入記錄后的ID(自動(dòng)編號(hào))
本篇文章是對(duì)使用SQL Server獲取插入記錄后的ID(自動(dòng)編號(hào))的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06

