【问题标题】:Pass multiple values in Syabse在 Sybase 中传递多个值
【发布时间】:2016-03-05 16:50:12
【问题描述】:

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

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

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

提前致谢!

【问题讨论】:

    标签: sql parameters ssrs-2012 sap-ase


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2020-04-11
      • 1970-01-01
      • 2013-11-15
      • 2021-01-15
      • 2013-10-12
      • 2010-12-20
      • 1970-01-01
      • 2017-06-13
      相关资源
      最近更新 更多