我又回来了一个小问题。希望我能在这里得到一些东西。
我正在撰写报告,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的问题。它不能带来多重价值。
我相信有人可能找到了解决方法。只需要让它运作起来。
先谢谢。!
答案 0 :(得分:0)
您可以使用表达式中的连接从列表中创建逗号分隔的字符串:
strFruits= Join(Parameters!fruits.Value,",")
然后你的where子句看起来像:
WHERE CHARINDEX(',' + COLUMN2 + ',' , ',' + @strFruits + ',')>0
','在字符串的开头和结尾添加的是确保找到搜索字符串,即使它位于逗号分隔列表的开头或结尾。