3

可能重复:
参数化 SQL IN 子句?
SQL Server 2005 中的逗号分隔值插入

我正在尝试使用 where in 子句在我的数据库中搜索,但我的字符串采用以下格式:

'233052,57516351,254689'

我需要使用以下查询在我的数据库中进行咨询:

SELECT * FROM myTable WHERE field IN (@list_string)

我该如何做这个动作?

4

3 回答 3

5

使用SQL Server 2008 中引入的表值参数。

这些使您可以传入可用于查询的表结构。

对于其他选项,我建议阅读Erland Sommarskog 的Arrays and Lists in SQL Server

于 2012-12-27T14:01:46.393 回答
2

多年来,我一直在使用Itai Goldstein 的 Split 函数来应对这种情况。然后,您可以执行以下操作:

SELECT * 
FROM [myTable] 
WHERE [field] IN (
    SELECT [Data]
    FROM [dbo].[Split] (@list_string, ',')
);
于 2012-12-27T17:22:50.930 回答
0

尝试执行 sql 语句连接的 EXEC:

declare @sql varchar(200)
set @sql='SELECT * FROM myTable WHERE field IN ('+@list_string+')'
exec(@sql)
于 2012-12-27T15:56:13.407 回答