可能重复:
Parameterizing an SQL IN clause?
SQL Server SP - Pass parameter for “IN” array list?
在我的SP中,我从Reference表中获取数据串以获取SQL选择过滤。
这是方案,
Regionids = 2,6,8 我将此值赋给字符串@regions
在我的SP中,我做了计算,并且有一个很大的SQL来返回数据。 根据计算,我得到日期和ID来获取记录。 另外,我想将行限制在Reference。
中指定的区域之上所以在SELECT的Where子句中, AND RG.regionids IN(@regions)
我收到错误, 将varchar值'2,6,8'转换为数据类型int时,转换失败。
我如何完成上述要求?
答案 0 :(得分:1)
最简单的方法是使用动态SQL:
EXECUTE('SELECT *
FROM Region R
WHERE R.RegionID IN (' + @regions + ')')