我正在尝试使用 where in 子句在我的数据库中搜索,但我的字符串采用以下格式:
'233052,57516351,254689'
我需要使用以下查询在我的数据库中进行咨询:
SELECT * FROM myTable WHERE field IN (@list_string)
我该如何做这个动作?
我正在尝试使用 where in 子句在我的数据库中搜索,但我的字符串采用以下格式:
'233052,57516351,254689'
我需要使用以下查询在我的数据库中进行咨询:
SELECT * FROM myTable WHERE field IN (@list_string)
我该如何做这个动作?
使用SQL Server 2008 中引入的表值参数。
这些使您可以传入可用于查询的表结构。
对于其他选项,我建议阅读Erland Sommarskog 的Arrays and Lists in SQL Server。
多年来,我一直在使用Itai Goldstein 的 Split 函数来应对这种情况。然后,您可以执行以下操作:
SELECT *
FROM [myTable]
WHERE [field] IN (
SELECT [Data]
FROM [dbo].[Split] (@list_string, ',')
);
尝试执行 sql 语句连接的 EXEC:
declare @sql varchar(200)
set @sql='SELECT * FROM myTable WHERE field IN ('+@list_string+')'
exec(@sql)