我有一個應用程序,其中用戶可以將我請求的部分或全部參數傳遞給應用程序。 (基本上,只要他們選擇,他或她可以停止爲各種數據提供輸入。)根據他們提供的輸入,我想從MS SQL 2008數據庫中獲取信息,僅使用他們提供給我的參數。存儲過程中的可選屬性WHERE子句
我想像這樣的事情,但我似乎無法得到它的工作,並不知道它是否可以。
CREATE PROCEDURE [dbo].[SearchForSolution]
@Input1 int = 0,
@Input2 int = 0,
@Input3 int = 0,
AS
SELECT Name, SolutionValue
FROM MyTable
WHERE (IF @Input1 != 0) { BETWEEN LowValue AND HighValue }
AND (IF @Input2 != 0) { BETWEEN LowValue AND HighValue }
AND (IF @Input3 != 0) { < HighValue }
RETURN 0
顯然,這不是工作代碼,但它提供了一般的想法。我希望能夠使用一個變量作爲WHERE子句的一部分,但前提是它不使用幻數(在本例中爲0)。
我對這裏的SQL功能不是很熟悉,也不確定自己想做什麼是可能的。我迄今爲止嘗試過的所有東西都失敗了。如果我在這裏完全走錯了路,我會很欣賞一個指向正確方向的指針。