程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> 更多數據庫知識 >> SQL 中 NULL值測試代碼

SQL 中 NULL值測試代碼

編輯:更多數據庫知識

剛剛想從數據庫中的表EXPERT_DETAILS中檢索出修改人Modifier(類型 VARCHAR2(20),可為空)為空的那些記錄,因為該字段的類型為VARCHAR2(20),我使用的SQL語句為
復制代碼 代碼如下:
select * from expert_details twhere t.modifier = ''

沒有檢索出一條記錄,而這與存儲在該表中的記錄是不相符的。後來想到即便是空字符型存儲在數據庫中也應該是NULL而不是''。

然後我使用下列SQL 語句,仍然沒有檢索出一條記錄。
復制代碼 代碼如下:
select * from expert_details t
where t.modifier = null

最後我想到了SQL中的NULL 值測試。使用如下語句,終於檢索出了想要的結果。
復制代碼 代碼如下:
select * from expert_details t
where t.modifier is null

在SQL語句中,where 子句:where t.modifier = null ,這裡不可以使用NULL關鍵字,因為它不是一個真正的值,它僅僅是一個符號,因為它的值是未知的。當t.modifier本身就是null時,即where子句為:where null= null ,當等號兩邊的值都是未知的時候,結果是TRUE還是FALSE,SQL不能給出一個明確的結果,所以查詢出的結果也為NULL。

因此必須明確使用NULL值測試即 字段 IS NULL 或者其否定形式 字段 IS NOT NULL 來檢測NULL值。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved