2016-10-13 52 views
2

我有一個表tbl,它有一列IsLib,它有點但也接受空值,它必須是這樣。我有一個查詢,帶來參數@bitIsLib是真的或假,我需要在此基礎上過濾tbl。我不能這樣做:在過濾器上關聯空值爲false

SELECT * FROM tbl WHERE IsLib = @bitIsLib 

因爲我需要將空值視爲false,它們將被排除在此過濾器之外。我如何編寫它,所以如果@bitIsLib爲真,那麼它包括真值,並且如果@bitIsLib爲假,那麼它包括假空值?

回答

2
SELECT * FROM tbl WHERE ISNULL(IsLib, 0) = @bitIsLib 
0

檢查IsLibIS NULL條件where條款時@bitIsLib = 0

這裏有一種方法

SELECT * FROM tbl 
WHERE IsLib = @bitIsLib 
    or (@bitIsLib = 0 and IsLib is null)