如何在 TSQL Where 子句中动态添加条件?
我试图避免在两个完整的 Select 语句之间进行选择。下面的代码与我的实际代码非常相似,但没有那么复杂。
SELECT COUNT(*)
FROM MyTable
WHERE ShipDate >= @FirstDayOfMonth
AND ShipDate < @LastDayOfMonth
AND OrderType = 1
AND NOT OrderCode LIKE '%3'
AND NOT OrderCode LIKE '%4';
我希望能够根据存储过程参数的值添加或删除最后两个条件。
即:如果 @ExcludePhoneOrders = False ,不要使用最后两个 Where子句条件。
最佳答案
我不确定您是要包含还是排除,但这里有一个尝试。
SELECT COUNT(*)
FROM MyTable
WHERE ShipDate >= @FirstDayOfMonth
AND ShipDate < @LastDayOfMonth
AND OrderType = 1
AND (@ExcludePhoneOrders = False OR (NOT OrderCode LIKE '%3' AND NOT OrderCode LIKE '%4'));
关于sql-server - 如何在存储过程中动态添加到 TSQL Where 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6431472/