No tienes que hacerlo, puedes evitarlo haciendo algo como
SELECT *
FROM [Query]
WHERE (@Parameter = 1 AND Column1 = 8)
OR (@Parameter = 2 AND Column2 = 8)
OR (@Parameter = 3 AND Column3 = 8)
Sin embargo, el hecho de que puedas hacer algo no significa que debas hacerlo. SQL menos detallado no significa un mejor rendimiento, por lo que usar algo como:
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
mientras que equivalente a la primera consulta debería resultar en un mejor rendimiento ya que se optimizará mejor.