ソリューションは理論的にはパフォーマンスの向上に役立つと思いますが、スカラー関数が実際に何をするかにも依存します。この場合 (私の推測では、日付を四半期の最終日にフォーマットしています) は、実際には無視できると思います。
推奨される回避策を含むこのページを読むことをお勧めします:
また、回避策には、
というコメントがあります。はい、これによりパフォーマンスが向上する可能性があります。
あなたの解決策は正しいですが、代わりに ELSE を使用するように SQL を改善することを検討することをお勧めします。私にはきれいに見えます:
AND ReportTypeID = CASE WHEN (@X = 1) THEN 1
ELSE 4
END;