1. 程式人生 > >空值檢測

空值檢測

沒有新增非空約束列是可以為空值的(也就是NULL),有時我們需要對空值進行檢測,比如要查詢所有姓名未知的員工資訊。既然NULL 代表空值,有的開發人員試圖通過下面的SQL語句來實現:


SELECT * FROM T_Employee WHERE FNAME=null 

這個語句是可以執行的,不過執行以後我們看不到任何的執行結果,那個Fnumber為“IT002”的資料行中Fname欄位為空,但是沒有被查詢出來。這是因為在SQL語句中對空值的處理有些特別,不能使用普通的等於運算子進行判斷,而要使用IS NULL關鍵字,使用方法為“待檢測欄位名IS NULL”,比如要查詢所有姓名未知的員工資訊,則執行下面的SQL語句:


SELECT * FROM T_Employee WHERE FNAME IS NULL 

執行完畢我們就能在輸出結果中看到下面的執行結果:

如果要檢測“欄位不為空”,則要使用IS NOT NULL,使用方法為“待檢測欄位名IS NOT NULL”,比如要查詢所有姓名已知的員工資訊,則執行下面的SQL語句:


SELECT * FROM T_Employee WHERE FNAME IS NOT NULL 

執行完畢我們就能在輸出結果中看到下面的執行結果:

IS NULL/IS NOT NULL可以和其他的過濾條件一起使用。比如要查詢所有姓名已知且工資小於5000的員工資訊,則執行下面的SQL語句:


SELECT * FROM T_Employee WHERE FNAME IS NOT NULL AND FSalary <5000 

執行完畢我們就能在輸出結果中看到下面的執行結果: