首页 > 解决方案 > 嵌套代替表达式

问题描述

我有两行脚本:

IIF (name.value ='no',  name1.value, name2.Value) as [name 1],


IIF (name.value ='yes', name3.value, name4.value) as [name 1.5],

这给了我一个输出,一旦在 SSRS 中我使用这个表达式组合成一个表中的一个字段:

=IIF(Fields!name_1.Value is nothing, Fields!name_1_5.Value, Fields!name_1.Value)

但是,我不想使用这个相当笨拙的表达式,而是想重写上面的 T-SQL 以将数据带到那里,而不是在 SSRS 中糊涂。有没有办法可以嵌套上面的两行脚本来给我通过 SSRS 中的表达式实现的相同输出?

感激地收到任何帮助。

非常感谢。

标签: tsqlreporting-services

解决方案


使用COALESCE返回第一个非空值,如下所示:

SELECT
    COALESCE(
        IIF (name.value ='no',  name1.value, name2.Value),
        IIF (name.value ='yes', name3.value, name4.value)
    ) as [name 1 or 1.5]
FROM MyTable

推荐阅读