SSRS表达式将NULL替换为另一个字段值

Nit*_*Cat 38 reporting-services

我需要编写一个SSRS表达式来检查并将NULL字段值替换为另一个字段值.可以这样做吗?

Anu*_*wal 56

=iif(isNothing(Fields!FV1.Value), Fields!FV2.Value, Fields!FV1.Value)
Run Code Online (Sandbox Code Playgroud)


Kyl*_*Mit 33

如果你必须多次这样做,你也可以制作一个可重复使用的功能,以避免大量输入.这是一个以SQL的ISNULL函数为模型的解决方案:

  1. 右键单击"报告文档",然后转到"报告属性".

    报告属性

  2. 导航到"代码"选项卡并添加以下功能:

    Public Function IsNull(input As Object, defaultValue As Object) As Object
      Return IIf(input Is Nothing, defaultValue, input)
    End Function
    
    Run Code Online (Sandbox Code Playgroud)

    码
    - 即使自定义代码需要有效的VB.NET代码,您也必须使用IIFTernary运算符.

  3. 然后你可以在这样的表达式中使用它:

    =Code.IsNull(Fields!MyField.Value,0)
    
    Run Code Online (Sandbox Code Playgroud)

    表达

  • 尽管两个答案都是正确的,但我非常喜欢此解决方案的重用潜力。特别是当您有一个复杂的表达式来聚合字段时。在这种情况下,这是一个更具可读性和可重用性的解决方案。 (2认同)
  • 3年后 - 但我发现这非常有用. (2认同)