0

我使用 SSRS Report Builder 开发了一份报告。该报告包含几个参数,其中一个参数包含 NULL 值,而不是它从数据库中获取的值。

现在,当我从该参数中选择 NON-NULL 值时,报告运行良好,因为我使用的是 IN 子句(因为参数值是多选的)。但是当我从该参数中选择 NULL(而不是任何其他值)时,IN 子句不起作用,因为 IN 不采用 NULL。

因此,我应该如何/如何修改我的查询,以便它可以同时处理 --- NULL 和 NON-NULL 值?

4

2 回答 2

1

以下强制包含所有 NULL,并让报告用户清楚地知道缺少该值:

SELECT ISNULL([ColumnNameHere],'[ None ]') AS [ColumnNameHere]
WHERE ISNULL([ColumnNameHere],'[ None ]') IN (@MultiParam)
于 2012-10-26T16:27:44.063 回答
0

我以前遇到过这个问题。

解决方案不是传递 NULL,而是传递一个实际上您的数据库从不使用的默认值。这并不理想,但似乎是实施的一个怪癖。

因此,如果您正在搜索ThingId. ThingId是我们知道永远不可能的代理键>0

您使用 0 作为any的值,并传递它而不是 NULL,然后像这样更改您的查询:-

WHERE
  @ThingId = 0 OR ThingId = @ThingId
于 2012-10-26T12:45:32.043 回答