我想知道在存储过程中实现“IF”条件的更好方法。如果改善查询计划重用的条件,首选的T-SQL方法
我见过这种方法广泛使用。我喜欢这相当于迭代译码...
declare @boolExpression bit = 1 --True
if @boolExpression = 1
select column from MyTable where group = 10
else
select column from MyTable where group = 20
使用一组为基础的方法...
declare @boolExpression bit = 1 --True
select column from MyTable where group = 10 and @boolExpression =1
union all
select column from MYTable where group = 20 and @boolExpression =0
我喜欢,因为我了解使用此方法创建一个可重复使用查询计划和更少的计划缓存流失。这是事实还是虚构?哪一个是正确的使用方法。
在此先感谢
你是否错过了第二个'UNION ALL'? –
是的,谢谢Martin,UNION ALL丢失了。我将它添加到 –