Du behöver inte, du kan komma runt det genom att göra något liknande
SELECT *
FROM [Query]
WHERE (@Parameter = 1 AND Column1 = 8)
OR (@Parameter = 2 AND Column2 = 8)
OR (@Parameter = 3 AND Column3 = 8)
Men bara för att du kan göra något betyder det inte att du borde. Mindre utförlig SQL betyder inte bättre prestanda, så använd något som:
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
medan den motsvarar den första frågan bör resultera i bättre prestanda eftersom den kommer att optimeras bättre.