我想在我的mssql存儲過程中使用參數在小的和詳細的結果(用於可維護性,性能和網絡負載的原因)之間切換。SQL Server - 如何在2個可能的SELECT語句之間切換
如果參數設置爲1,我得到所有列,否則只有一個或兩個最重要的。 在一個非常有限的方式,它的工作原理是這樣的:
ALTER PROCEDURE [dbo].[GetAllUsers]
@detail BIT
AS
IF @detail = 1 SELECT UserName, Title, UserID FROM Users
ELSE SELECT Username FROM Users
但我想使用組合的WHEN子句。 以下是我的嘗試,但這並不奏效。
ALTER PROCEDURE [dbo].[GetAllUsers]
@detail BIT
AS
CASE @detail
WHEN 1 THEN SELECT UserName, Title, UserID
ELSE SELECT UserName END
FROM Users
WHERE UserID < 5
有什麼辦法可以達到這樣的效果嗎?
我也想過這個。所以我想我會把它放在兩個。 其中一個原因是,where子句中的更改會影響小版本和詳細版本。我期望where子句變得很大,沒有這樣的'技巧',我有兩個大的where子句,在2個存儲過程中完全相同。 – Marks 2010-04-22 13:54:56