Saya pikir solusinya mungkin secara teori membantu Anda meningkatkan kinerja, tetapi itu juga tergantung pada apa yang sebenarnya dilakukan fungsi skalar. Saya pikir dalam kasus ini (tebakan saya memformat tanggal hingga hari terakhir di kuartal) akan sangat diabaikan.
Anda mungkin ingin membaca halaman ini dengan solusi yang disarankan:
Dan di Workarounds, ada komentar yang
Jadi tampaknya ya, ini dapat meningkatkan kinerja.
Solusi Anda benar, tetapi saya akan merekomendasikan mempertimbangkan peningkatan SQL untuk menggunakan ELSE sebagai gantinya, itu terlihat lebih bersih bagi saya:
AND ReportTypeID = CASE WHEN (@X = 1) THEN 1
ELSE 4
END;