如何在SQL Select中使用值数组 - SQL Server 2005

时间:2012-08-07 18:59:39

标签: sql arrays

  

可能重复:
  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时,转换失败。

我如何完成上述要求?

1 个答案:

答案 0 :(得分:1)

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

EXECUTE('SELECT * 
         FROM   Region R 
         WHERE  R.RegionID IN (' + @regions + ')')