Не е нужно, можете да го заобиколите, като направите нещо като
SELECT *
FROM [Query]
WHERE (@Parameter = 1 AND Column1 = 8)
OR (@Parameter = 2 AND Column2 = 8)
OR (@Parameter = 3 AND Column3 = 8)
Въпреки това, само защото можете да направите нещо, не означава, че трябва. По-малко подробен SQL не означава по-добра производителност, така че използвайте нещо като:
IF @Parameter = 1
BEGIN
SELECT *
FROM [Query]
WHERE Column1 = 8
END
ELSE IF @Parameter = 2
BEGIN
SELECT *
FROM [Query]
WHERE Column2 = 8
END
ELSE IF @Parameter = 3
BEGIN
SELECT *
FROM [Query]
WHERE Column3 = 8
END
докато еквивалентът на първата заявка трябва да доведе до по-добра производителност, тъй като ще бъде оптимизиран по-добре.