代码之家  ›  专栏  ›  技术社区  ›  Jiveman

SSRS和PostgreSQL:如何传递可选参数?

  •  6
  • Jiveman  · 技术社区  · 10 年前

    我在SSRS报告中使用PostgreSQL ODBC数据源。

    根据我以前对MS SQL Server数据源的了解,要将可选参数传递给SSRS数据集查询,您可以这样做:

    SELECT *
    FROM MyTable
    WHERE SomeField = @Param1 OR @Param1 IS NULL
    

    密钥正在使用 OR @Param1 IS NULL 基本上绕过了 SomeField = @Param1 部分,有效地充当“可选”过滤器。然而,当使用PostgreSQL ODBC数据源时,这似乎不起作用(不确定这是由于Postgres还是ODBC或两者)。单击“刷新字段”或执行/预览报告时出错。

    这可能部分是由于无法将命名参数传递到SQL中,而是必须使用“?”像这样:

    SELECT *
    FROM MyTable
    WHERE SomeField = ?
    

    …这使得它不可能做到 OR ? IS NULL 大体上

    所以,有人知道我如何将可选参数传递给SSRS中的PostgreSQL数据集吗?

    1 回复  |  直到 10 年前
        1
  •  3
  •   Clodoaldo Neto    10 年前

    不是特定的ODBC解决方案,而是一种变通方法。如果 SomeField 不能是 null :

    select *
    from mytable
    where somefield = coalesce(?, somefield)
    

    如果 SomeField公司 可以是 无效的 并且您希望返回空值:

    where somefield is not distinct from coalesce(?, somefield)
    

    检查 is distinct from