SQL 中 NULL值測試代碼
更新時間:2011年04月14日 23:30:44 作者:
在SQL語句中,where 子句:where t.modifier = null ,這里不可以使用NULL關(guān)鍵字,因為它不是一個真正的值,它僅僅是一個符號,因為它的值是未知的。
剛剛想從數(shù)據(jù)庫中的表EXPERT_DETAILS中檢索出修改人Modifier(類型 VARCHAR2(20),可為空)為空的那些記錄,因為該字段的類型為VARCHAR2(20),我使用的SQL語句為
select * from expert_details twhere t.modifier = ''
沒有檢索出一條記錄,而這與存儲在該表中的記錄是不相符的。后來想到即便是空字符型存儲在數(shù)據(jù)庫中也應(yīng)該是NULL而不是''。
然后我使用下列SQL 語句,仍然沒有檢索出一條記錄。
select * from expert_details t
where t.modifier = null
最后我想到了SQL中的NULL 值測試。使用如下語句,終于檢索出了想要的結(jié)果。
select * from expert_details t
where t.modifier is null
在SQL語句中,where 子句:where t.modifier = null ,這里不可以使用NULL關(guān)鍵字,因為它不是一個真正的值,它僅僅是一個符號,因為它的值是未知的。當(dāng)t.modifier本身就是null時,即where子句為:where null= null ,當(dāng)?shù)忍杻蛇叺闹刀际俏粗臅r候,結(jié)果是TRUE還是FALSE,SQL不能給出一個明確的結(jié)果,所以查詢出的結(jié)果也為NULL。
因此必須明確使用NULL值測試即 字段 IS NULL 或者其否定形式 字段 IS NOT NULL 來檢測NULL值。
復(fù)制代碼 代碼如下:
select * from expert_details twhere t.modifier = ''
沒有檢索出一條記錄,而這與存儲在該表中的記錄是不相符的。后來想到即便是空字符型存儲在數(shù)據(jù)庫中也應(yīng)該是NULL而不是''。
然后我使用下列SQL 語句,仍然沒有檢索出一條記錄。
復(fù)制代碼 代碼如下:
select * from expert_details t
where t.modifier = null
最后我想到了SQL中的NULL 值測試。使用如下語句,終于檢索出了想要的結(jié)果。
復(fù)制代碼 代碼如下:
select * from expert_details t
where t.modifier is null
在SQL語句中,where 子句:where t.modifier = null ,這里不可以使用NULL關(guān)鍵字,因為它不是一個真正的值,它僅僅是一個符號,因為它的值是未知的。當(dāng)t.modifier本身就是null時,即where子句為:where null= null ,當(dāng)?shù)忍杻蛇叺闹刀际俏粗臅r候,結(jié)果是TRUE還是FALSE,SQL不能給出一個明確的結(jié)果,所以查詢出的結(jié)果也為NULL。
因此必須明確使用NULL值測試即 字段 IS NULL 或者其否定形式 字段 IS NOT NULL 來檢測NULL值。
相關(guān)文章
sqlserver substring函數(shù)使用方法小結(jié)
在操作sqlserver時候用到了substring函數(shù),特整理一些實例,需要的朋友可以參考下。2009-12-12
SQL Server遍歷表中記錄的2種方法(使用表變量和游標(biāo))
遍歷表一般都要用到游標(biāo)在SQL Server中可以很容易的用游標(biāo)實現(xiàn)循環(huán)實現(xiàn)遍歷表中記錄,本文將介紹使用表變量和游標(biāo)實現(xiàn)數(shù)據(jù)庫中表的遍歷,感興趣的朋友可以了解下本文,或許可以幫助到你2013-02-02
sqlserver中去除字符串中連續(xù)的分隔符的sql語句
sqlserver中去除字符串中連續(xù)的分隔符的sql語句,需要的朋友可以參考下2012-05-05
有關(guān)數(shù)據(jù)庫SQL遞歸查詢在不同數(shù)據(jù)庫中的實現(xiàn)方法
這篇文章主要介紹了有關(guān)數(shù)據(jù)庫SQL遞歸查詢在不同數(shù)據(jù)庫中的實現(xiàn)方法的相關(guān)資料,需要的朋友可以參考下2015-10-10
SQL Server 遠(yuǎn)程連接服務(wù)器詳細(xì)配置(sp_addlinkedserver)
這篇文章主要介紹了SQL Server 遠(yuǎn)程連接服務(wù)器詳細(xì)配置(sp_addlinkedserver),需要的朋友可以參考下2017-01-01
SQL Server刪除表中的重復(fù)數(shù)據(jù)
這篇文章介紹了SQL Server刪除表中重復(fù)數(shù)據(jù)的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-05-05
GreatSQL 在SQL中如何使用 HINT 語法修改會話變量
GreatSQL推出新的優(yōu)化Hint功能,名為SET_VAR,允許用戶在查詢語句中修改數(shù)據(jù)庫的會話變量,但只對當(dāng)前查詢會話生效,不影響其他會話,本文給大家介紹GreatSQL 在SQL中如何使用 HINT 語法修改會話變量,感興趣的朋友一起看看吧2024-10-10

