2017-02-01 112 views
1

我有個視圖(A)運行下面的查詢時,其包含9行:SQL查詢結果是錯誤的

SELECT * 
FROM A 
WHERE card_num_full is null OR card_num_full LIKE '' 

表B不包含這些9行,那麼,爲什麼運行下面的查詢時,我結果仍然是9行?

SELECT * 
FROM A 
WHERE card_num_full is null OR card_num_full LIKE '' 
     AND field_1 IN 
     (SELECT field_1 
     FROM B) 
+3

結果是永遠沒有錯。查詢是:) – NicoRiff

+0

@NicoRiff大聲笑!正確。我究竟做錯了什麼? –

+0

JohnHC的答案是正確的 – NicoRiff

回答

2

支架您or

SELECT * 
FROM A 
WHERE (card_num_full is null 
    or card_num_full like '') 
and field_1 in (select field_1 from B) 
+1

這麼簡單..我很難過... 10x 我會在8分鐘內接受它的答案。不能早點做到 –

1

可以使用ISNULL()功能,則不需要支架。

SELECT * 
FROM A WHERE isnull(card_num_full,'') like '' 
    and field_1 in 
     (select field_1 from B)