读取派生的列表达式

时间:2019-07-01 16:39:33

标签: sql-server ssis etl derived-column

我需要帮助阅读这个包含多个布尔表达式的令人困惑的派生列表达式。

我尝试过多种阅读方式,但不确定哪一种是正确的。

ISNULL(ContractNumber) ? (ISNULL(PaidLossAmount) 
&& ISNULL(CaseReserveAmount)) ? NULL(DT_CY) : 
(ISNULL(PaidLossAmount) ? 0 : PaidLossAmount) + (ISNULL(CaseReserveAmount) 
? 0 : CaseReserveAmount) : PaidLossAmount

有人可以建议该表达式如何阅读吗?感谢您的建议!

1 个答案:

答案 0 :(得分:2)

如果不是,则为[逻辑测试]格式的嵌套? [如果是,则执行此操作]:[如果是,则执行此操作]

这是格式化的版本。

ISNULL(ContractNumber) 
     ?(ISNULL(PaidLossAmount) && ISNULL(CaseReserveAmount)) 
              ?NULL(DT_CY) 
              : (ISNULL(PaidLossAmount) 
                            ? 0 
                            : PaidLossAmount) 
                 + (ISNULL(CaseReserveAmount) 
                            ? 0 
                            : CaseReserveAmount) 
     : PaidLossAmount

这是一个决策树:

enter image description here