作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 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)
关于postgresql - SSRS 和 PostgreSQL : How do I pass an optional parameter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34518025/
我是一名优秀的程序员,十分优秀!