2013-04-08 38 views
1

對於情節脫離我的手,我的字符串值:如何在int列中使用字符串值的SQL IN語句?

@param1 = "1,2,3,4"; 

我怎麼做語句來檢查,如果一個ID在我的字符串參數1 @?

如此,它會是這個樣子:

select * from table1 where ID IN (@param1); 

通常情況下,我想我應該有這樣的:

select * from table1 where ID IN (1,2,3,4); 

但不幸的是,在我的情況,我根本沒有那個,而是我只有一個串聯的所有ID類型的字符串參數,我如何從中選擇行?

+0

http://stackoverflow.com/questions/4613273/sql-use-comma-separated-values-with-in-clause – 2013-04-08 19:30:39

回答

1

您可以使用動態生成的SQL語句(DEMO):

declare @sql varchar(max) 

set @sql = 'select * from table1 where ID IN (' + @param1 + ')' 
exec(@sql) 

的想法是通過連接ID列表到SQL語句來建立一個字符串變量的SQL語句。最後的語句看起來像你預期的查詢:

select * from table1 where ID IN (1,2,3,4) 

然後你就可以與使用exec一個SQL命令來運行字符串變量的內容。

+0

我的查詢真的很長......有無論如何,你可以分開@ param1動態查詢到它自己的查詢? – Bill 2013-04-08 19:31:15

相關問題