gpt4 book ai didi

postgresql - SSRS 和 PostgreSQL : How do I pass an optional parameter?

转载 作者:行者123 更新时间:2023-11-29 11:35:59 29 4
gpt4 key购买 nike

我在 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 变得不可能?基本上是 NULL

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

最佳答案

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

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

如果 SomeField 可以是 null 并且您想返回 null:

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

检查 is distinct from

关于postgresql - SSRS 和 PostgreSQL : How do I pass an optional parameter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34518025/

29 4 0