我有以下查詢:的SQL Server 2008 - 布爾變量的變化查詢
DECLARE @IsStocked bit
SELECT * FROM Products p WHERE p.LastSeen > GETDATE() - 30
這將返回所有產品已經看到在過去30天。
我的問題是,我希望p.LastSeen > GETDATE() - 30
條款只適用於@IsStocked = true
。
這是一個較大的查詢的一部分,我希望在不使用IF/ELSE語句的情況下實現此目的(即,如果@IsStocked = false
的p.LastSeen > GETDATE() - 30
部分被完全忽略)。
謝謝!
爲什麼你不想使用IF/ELSE?另一種選擇可能會導致錯誤地緩存的查詢計劃...爲簡單起見, – 2009-09-20 10:21:07
確實存在 - 存在大約10個變量 - 所有這些都可以是真/假或空 - 除非有一種方法可以表明這種情況不會發生導致每個IF/ELSE?謝謝! – db1234 2009-09-20 10:28:46