动态 SQL 逗号分隔值查询

Oli*_*r S 5 sql dynamic-sql delimited delimiter

[更新:使用 SQL Server 2005]

您好,我想要做的是使用逗号分隔的值 (ids) 列表查询我的存储过程以检索数据行。

我收到的问题是转换错误:

Conversion failed when converting the varchar value ' +
@PassedInIDs + ' to data type int.
Run Code Online (Sandbox Code Playgroud)

我的 where 子句和错误中的语句是:

...
AND (database.ID IN (' + @PassedInIDs + '))
Run Code Online (Sandbox Code Playgroud)

注意:database.ID是int类型。

我正在关注这篇文章:

http://www.sql-server-helper.com/functions/comma-delimited-to-table.aspx

但由于错误而没有完成。

在我的执行脚本中,我有:

...
@PassedInIDs= '1,5'
Run Code Online (Sandbox Code Playgroud)

我在这里做错了什么吗?感谢您的帮助。

dav*_*ase 0

您需要像对待表格一样对待 ufn_CSVToTable。所以你可以加入这个函数:

JOIN ufn_CSVToTable(@PassedInIDs) uf ON database.ID = uf.[String]
Run Code Online (Sandbox Code Playgroud)