Jag tror att lösningen i teorin kan hjälpa dig att öka prestandan, men det beror också på vad den skalära funktionen faktiskt gör. Jag tror att i det här fallet (min gissning är att formatera datumet till sista dagen i kvartalet) skulle det verkligen vara försumbart.
Du kanske vill läsa den här sidan med föreslagna lösningar:
Och i Workarounds finns det en kommentar som
Så det verkar som att ja, detta kan öka prestandan.
Din lösning är korrekt, men jag skulle rekommendera att överväga en förbättring av SQL för att använda ELSE istället, det ser renare ut för mig:
AND ReportTypeID = CASE WHEN (@X = 1) THEN 1
ELSE 4
END;