我有以下查询:的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