0

我有一个问题,我有一个带有多个值字段的 SSRS 报告,我只是在徘徊如何从我创建的 SQL 存储过程中解析它,例如。

Multiple Values -> Egg,Banana,Apple,Candies,Honey

SQL:

SELECT Qty, Amount FROM tblFoodList WHERE ListOfFood IN (?Multiple Values?)

我如何能够将多个值放在 IN CLAUSE 中,同样这是正确的方式,还是有其他方式..

我应该将它作为字符串传递吗?

@varTemp = 'Egg','Banana','Apple','Candies','Honey' 

SELECT Qty, Amount FROM tblFoodList WHERE ListOfFood IN (@varTemp)

顺便说一句,我使用的是 SQL 2008 R2,以及 SQL 的字符串操作方法

4

1 回答 1

1

由于您使用的是存储过程,SSRS 将始终传递一个 CSV 列表;没有表值参数或类似的选项。

所以它将是一个看起来像的字符串'Egg,Banana,Apple,Candies,Honey'

下一步是将此字符串转换为某种表变量并在IN子句中使用它;您可以在这里使用许多技术。

Erland Sommarskog保留了大量的技术。

这个SO question 也有多种选择。

如果您将查询直接嵌入到报表中,您可以引用变量,例如IN (@varTemp); 它本质上是动态 SQL,因此这将构建适当的查询。如果您不想在 SP 中放置太多逻辑,可以考虑另一种选择。

于 2013-05-18T11:34:41.297 回答