私がやろうとしているのは、ブール値に基づいて、2 つの条件または 2 つのうちの少なくとも 1 つを満たす行を選択するクエリを作成することです。
以下は、ジョブを実行する単純化されたクエリです。つまり、私のクエリの 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
サブクエリを含む 5 つの追加チェックがあります。実際には、これはコードの大部分が複製されていることを意味し、違いは 1 つだけです。And / Or。
SQL を読むのがいかに難しいかを見て、私はそれを修正しようとしています。