在 Sybase 中传递多个值

Pass multiple values in Syabse

带着一个小问题又回来了。希望我能在这里有所收获。

我正在处理一份报告,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 的问题。它不能取多个值。

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

提前致谢!

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

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

那么您的 where 子句将如下所示:

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

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