我要做的是编写一个查询,该查询基于布尔值将选择满足两个条件或至少满足两个条件之一的行。
以下是完成工作的简化查询。问题是,我的查询中的 where 子句要复杂得多,所以我正在寻找一种以更易读的方式重写它的方法。
这可能吗?
declare @AndParam bit
set @AndParam = 1
SELECT * FROM Table
Where
(@AndParam = 1
AND
(Table.CategoryID = 3
AND
Table.Age < 30))
OR
(@AndParam = 0
AND
(Table.CategoryID = 3
OR
Table.Age < 30))
编辑:
这个问题真的是关于可读性和美学的。
取而代之的Table.Age < 30
是五个额外的检查,包括子查询。实际上,这意味着我有一大段代码重复,只有一个区别;和/或。
看到 SQL 如何难以阅读,我正在寻找修复它。