2011-12-16 105 views
3

我只是想知道是否有方法在MS SQL Server 2005中傳遞一個運算符作爲存儲過程參數。如果可能的話,我真的需要避免使用動態SQL。T-SQL存儲過程 - 動態和/或運算符

@AppOperator = "AND" 

WHERE (1 = 1) @AppOperator (2 = 2) 
+1

不知道你就可以擁有一個具有動態分配的運算符的查詢沒有動態sql(很樂意找到其他方式)。如果動態SQL不可行,是否可以設置兩個幾乎相同的語句,一個與where或where以及where和if語句來確定要使用哪一個? – Twelfth 2011-12-16 21:14:07

回答

4

不是真的你可能想什麼(因爲表達式必須重複),但這個工程:

如果
@AppOperator = "AND" 

... 
WHERE (
     @AppOperator = "AND" AND ((1 = 1) AND (2 = 2)) 
     OR 
     @AppOperator = "OR" AND ((1 = 1) OR (2 = 2)) 
) 
... 
+0

這將不得不起作用。感謝上帝,我只有一個表達要重複。謝謝您的幫助! – Jared 2011-12-16 21:27:25