0

可能重复:
参数化 SQL IN 子句?
SQL Server SP - “IN”数组列表的传递参数?

在我的 SP 中,我从参考表中获取数据字符串以过滤 SQL 选择。

这是场景,

Regionids = 2,6,8 我把这个值变成了一个字符串@regions

在我的 SP 中,我进行计算,最后有一个大 SQL 来返回数据。根据计算,我得到从中获取记录的日期和 ID。我还想将行限制在参考中指定的以上区域。

所以在我的 SELECT 的 Where 子句中,AND RG.regionids IN (@regions)

我收到错误,将 varchar 值“2,6,8”转换为数据类型 int 时转换失败。

我怎样才能完成上述要求?

4

1 回答 1

1

最简单的方法是使用动态 SQL:

EXECUTE('SELECT * 
         FROM   Region R 
         WHERE  R.RegionID IN (' + @regions + ')')
于 2012-08-07T19:13:44.137 回答