-1
我想要做的是寫一個查詢,基於布爾將選擇行滿足兩個條件或至少有一個兩個。SQL查詢清理 - 和/或基於條件
以下是完成工作的簡化查詢。事情是,我的查詢中的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如何難以閱讀我正在修復它。
在我看來,這是最小的一組條款,不能再減少。如果'@ AndParam'是布爾值,你可以寫'@ AndParam'和'NOT @ AndParam'。但這只是語法上的糖。 – nif