我想知道在存儲過程中實現「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丟失了。我將它添加到 –