Bạn không cần phải làm như vậy, bạn có thể vượt qua nó bằng cách làm điều gì đó như
SELECT *
FROM [Query]
WHERE (@Parameter = 1 AND Column1 = 8)
OR (@Parameter = 2 AND Column2 = 8)
OR (@Parameter = 3 AND Column3 = 8)
Tuy nhiên, chỉ vì bạn có thể làm điều gì đó, không có nghĩa là bạn nên làm. SQL ít dài dòng hơn không có nghĩa là hiệu suất tốt hơn, vì vậy hãy sử dụng một cái gì đó như:
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
trong khi ngang bằng với truy vấn đầu tiên sẽ dẫn đến hiệu suất tốt hơn vì nó sẽ được tối ưu hóa tốt hơn.