在Syabse中传递多个值

时间:2016-03-05 16:50:12

标签: sql parameters ssrs-2012 sybase-ase

我又回来了一个小问题。希望我能在这里得到一些东西。

我正在撰写报告,SQL Server Reporting Services 2012和数据库是Sybase ASE。 我的一个报告参数可以有多个值。我们将参数命名为@Fruit。它可以有多个值。因此,如果用户从列表中选择Apple和Mango,它应该传递给后端的查询。

该参数的值为:Apple,Mango 现在我需要以下面的方式将它传递给查询。

SELECT 
COLUMN1,
COLUMN2,
COLUMN3
FROM DBO.TABLE_NAME
WHERE COLUMN2 IN ('Apple','Mango')

问题:我一次可以传递一个水果名称。但是无法传递多个值。我做了一些研究,发现它与Sybase的问题。它不能带来多重价值。

我相信有人可能找到了解决方法。只需要让它运作起来。

先谢谢。!

1 个答案:

答案 0 :(得分:0)

您可以使用表达式中的连接从列表中创建逗号分隔的字符串:

strFruits= Join(Parameters!fruits.Value,",")

然后你的where子句看起来像:

WHERE CHARINDEX(',' + COLUMN2 + ',' , ',' + @strFruits + ',')>0

','在字符串的开头和结尾添加的是确保找到搜索字符串,即使它位于逗号分隔列表的开头或结尾。