我有一個原本簡單的查詢的WHERE子句,我不理解,並希望與幫助下面的代碼:T-SQL:需要幫助理解「奇怪」在SQL WHERE子句
... AND --Filter on StoreID
(
('545' IS NOT NULL AND a.StoreID IN (545)) OR
('545' IS NULL)
)
AND ...
的查詢出現如果我將其更改爲返回同樣的結果:
... AND a.StoreID IN (545) AND ...
我希望得到任何幫助,理解這一點。
謝謝,提前!
如果''545''值從代碼動態添加那麼這將是有選擇地在該值濾波器,或者忽略的方式如果沒有提供值,則過濾。 – David
'不是空'部分是完全不必要的。 '〜AB + A'相當於'A + B'。 – shawnt00
它可能工作正常,但它真的沒有任何意義的測試一次作爲一個字符串,再次作爲數值。 – shawnt00