可能重复:
Parameterizing an SQL IN clause?
Comma-separated value insertion In SQL Server 2005
我尝试使用where子句搜索我的数据库,但我的字符串采用以下格式:
'233052,57516351,254689'
我需要使用以下查询在我的数据库中进行咨询:
SELECT * FROM myTable WHERE field IN (@list_string)
我该如何采取行动?
答案 0 :(得分:3)
使用SQL Server 2008中引入的Table-valued parameters。
这些允许您传递可用于查询的表结构。
对于其他选项,我建议阅读Erland Sommarskog撰写的Arrays and Lists in SQL Server。
答案 1 :(得分:1)
在这种情况下,我多年来一直在使用Itai Goldstein's Split function。然后,您可以执行以下操作:
SELECT *
FROM [myTable]
WHERE [field] IN (
SELECT [Data]
FROM [dbo].[Split] (@list_string, ',')
);
答案 2 :(得分:0)
尝试执行sql语句连接:
declare @sql varchar(200)
set @sql='SELECT * FROM myTable WHERE field IN ('+@list_string+')'
exec(@sql)