SSRS 将多值文本参数转换为 SQL 语法中的字符串
SSRS Converting MultiValue Text Paramater into a String in SQL Syntax
我被迫为 SSRS 报表生成器使用 ODBC 源,源是 Impala SQL,它不支持使用参数。所以我不得不使用字符串生成器函数将参数获取到我的脚本中。这很好用,但是要求在文本参数中允许多个值。我不确定如何将这些值转化为允许脚本正确执行的语法,即每个值用逗号分隔包裹单引号。
当前工作,单值参数代码:
...member_id = '
"&Parameters!MemberSearch.Value()&"'...
原始数据集有超过 1700 万条记录,当尝试使用过滤器而不是参数时内存不足。
非常感谢任何帮助。
JOIN 可用于将数组转换为字符串。
="SELECT * FROM TABLE
WHERE member_id IN ('" & JOIN(Parameters!MemberSearch.Value, "', '") & "')"
价值
Bill Mark Tom
将转换为
Bill', 'Mark', 'Tom
JOIN 的第二个参数 ("', '") 将在每个值之间放置一个结束单引号、逗号和一个开始单引号。表达式文本中的单引号将是字符串所需的开始和结束引号。
我不知道 Impala 但对于大多数 DBMS,您需要将 EQUALS 更改为 IN 以获得多值。
我被迫为 SSRS 报表生成器使用 ODBC 源,源是 Impala SQL,它不支持使用参数。所以我不得不使用字符串生成器函数将参数获取到我的脚本中。这很好用,但是要求在文本参数中允许多个值。我不确定如何将这些值转化为允许脚本正确执行的语法,即每个值用逗号分隔包裹单引号。
当前工作,单值参数代码: ...member_id = ' "&Parameters!MemberSearch.Value()&"'...
原始数据集有超过 1700 万条记录,当尝试使用过滤器而不是参数时内存不足。
非常感谢任何帮助。
JOIN 可用于将数组转换为字符串。
="SELECT * FROM TABLE
WHERE member_id IN ('" & JOIN(Parameters!MemberSearch.Value, "', '") & "')"
价值
Bill Mark Tom
将转换为
Bill', 'Mark', 'Tom
JOIN 的第二个参数 ("', '") 将在每个值之间放置一个结束单引号、逗号和一个开始单引号。表达式文本中的单引号将是字符串所需的开始和结束引号。
我不知道 Impala 但对于大多数 DBMS,您需要将 EQUALS 更改为 IN 以获得多值。