2011-01-24 37 views
15

如何使用SQL select語句檢查列是空還是空?如何使用SQL查詢select語句檢查列是空還是空?

舉例來說,如果我想查:

select * from UserProfile WHERE PropertydefinitionID in (40, 53) and PropertyValue is null or empty 
+0

我想知道該PropertyValue,如何chaeck,因爲我想要的。 – NoviceToDotNet 2011-01-24 09:01:05

+0

你能告訴我們表格的定義嗎? – 2011-01-24 09:06:02

+1

如果我正確理解你,你希望只選擇那些沒有PropertyValue的UserProfiles集(NULL或no,是否正確? – 2011-01-24 09:09:49

回答

30

這是否你想要什麼?

SELECT * 
FROM UserProfile 
WHERE PropertydefinitionID in (40, 53) 
    AND ( PropertyValue is NULL 
     or PropertyValue = ''); 
18

這裏有一個稍微不同的方式:

SELECT * 
FROM UserProfile 
WHERE PropertydefinitionID in (40, 53) 
    AND (LEN(ISNULL(PropertyValue,'')) = 0) 
6

這是我首選的檢查方法, 「如果null或空」:

SELECT * 
FROM UserProfile 
WHERE PropertydefinitionID in (40, 53) 
AND NULLIF(PropertyValue, '') is null 

因爲它修改搜索參數(SARG )它可能會有性能問題,因爲它可能不會使用PropertyValue列上的現有索引。