あなたはそうする必要はありません、あなたは次のようなことをすることによってそれを回避することができます
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
最初のクエリと同等であると、最適化が向上するため、パフォーマンスが向上するはずです。