2010-07-07 14 views
2

我想要做的就是這樣的事情SQL Server,T-SQL操作符可以像變量一樣使用嗎?或類似的東西

DECLARE @operator nvarchar; 
SET @operator = 'AND' 

SELECT * FROM MyTable 
WHERE first_column = "1" @operator second_columnt = "2" 

有沒有實現這樣的一個邏輯的方法嗎?

+0

你真的需要通過閱讀在T-SQL中,[動態搜索條件Erland Sommarskog](http://www.sommarskog.se/dyn-search-2005.html) – 2010-07-07 13:09:20

回答

8

你可以做到這一點使用動態SQL:

declare @query varchar(max) 
set @query = 'select * from MyTable where first_column = ''1'' ' + 
    @operator + ' second_column = ''2''' 
exec (@query) 

有時候,where語句的邏輯是足夠的,如:

select * 
from MyTable 
where (operator = 'AND' and first_column = '1' and second_column = '2') 
     or (operator = 'OR' and (first_column = '1' or second_column = '2')) 
相關問題