21

我想过滤掉没有包含空值或空白列的行的输出。我使用的是 SQL Server 2012,在 SS2005 中没有名为“Blank”的选项,我可以在其中过滤行。我也尝试了以下表达式,但它给了我错误或没有显示正确的输出

=IsNothing(Fields!ABC.Value)!= True 
=Fields!ABC.Value = ''

请提出解决方案。

4

3 回答 3

43
  • 拉起 tablix 或组属性
  • 切换到“过滤器”
  • 添加新过滤器
  • 将表达式设置为:

    =IsNothing(Fields!YourFieldHere.Value)

  • 将类型设置为“布尔”(参见下面的屏幕截图),否则您将收到“无法比较布尔和字符串类型的数据”错误。

  • 将值设置为false

分组对话框截图,高亮表达式类型设置

这适用于过滤行和组。

于 2015-05-19T12:24:34.017 回答
34

我们应该在 Expression 中使用 isNothing 方法,将 Text 更改为 Boolean 然后 Value 将是“True”

例如:

Expression 
=IsNothing(Fields!TestA.Value)<>True
(Expression type should be Boolean)
Operator
=
Value
=True
于 2012-12-13T07:23:10.620 回答
2

编辑 SQL 查询,使其不会在要分组的列中返回 NULL 值,而是让它返回一个虚拟值;例如:ISNULL(columnA, 'dummy')

在列组定义中添加一个过滤器:ColumnA <> 'dummy'。

于 2015-01-22T19:43:48.440 回答