1
我正在尋找解決方法,只想使用CASE語句根據兩個條件執行表達式。我寫了一些模擬僞代碼來說明我正在嘗試做什麼。Case Conditionments中的表達式 - 有條件的WHERE
WHERE (RN = 1)
AND
CASE
WHEN (@ApplicationName '' OR @ApplicationGroup '')
THEN
AND (
@AppFilterType = 'Groups' AND [GroupName].[Name] IN (SELECT StringValue FROM [StarTeam].[dbo].fn_CSVToTable(@ApplicationGroup))
OR
@AppFilterType = 'Apps' AND [AppName].[Name] IN (SELECT StringValue FROM [StarTeam].[dbo].fn_CSVToTable(@ApplicationName))
)
END
這是想法,僅當@ApplicationName
和/或@ApplicationGroup
有一個值執行的條件。
我使用這個在T-SQL存儲過程SQL Server上運行2005
在某種程度上這可能嗎?
在此先感謝您的幫助。
啊,所以根本不需要Case語句。讓我試試吧。謝謝! – Jared 2011-12-21 18:17:44
好的,我測試過了。沒有錯誤但不像預期的那樣行事。也許我錯過了一些東西。在這兩個參數都沒有值的情況下,我不希望塊完全執行。所以它應該像塊一樣沒有。現在當我運行這個時,我沒有從我的記錄集中得到任何結果。這個想法是我應該把所有東西都拿回來。當我註釋掉AND塊時,我會將所有記錄返回。你能想到我可能做得不對嗎? – Jared 2011-12-21 18:33:10
嘗試上面修改的'WHERE'子句。 – RedFilter 2011-12-21 20:06:04