如何在SSIS表达式中编写Case语句
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在SSIS表达式中编写Case语句相关的知识,希望对你有一定的参考价值。
我在SQL Code中的条件很小。如何在Derived列任务中的SSIS中编写它。
CASE WHEN SaleProduct IS NULL AND ReProduct IS NULL THEN ''
WHEN SaleProduct IS NOT NULL AND ReProduct IS NULL THEN SaleProduct
WHEN SaleProduct IS NULL AND ReProduct IS NOT NULL THEN SaleProduct
ELSE
SaleProduct +';'+ ReProduct END As COL
我尝试过以下表达但没有得到任何东西
(ISNULL( [SaleProduct] )&& [ReProduct] == "") : ? "0"
" ------------------------"
UNKNOWN
谁可以帮我这个事 ...
答案
可以使用“派生”列转换中的“条件”运算符复制CASE语句。对于你的情况,表达式就像
((ISNULL(SaleProduct) == True && ISNULL(ReProduct) == True) ? " " :((ISNULL(SaleProduct) == False && ISNULL(ReProduct) == True)? SaleProduct :(ISNULL(SaleProduct) == True && ISNULL(ReProduct) == False)? SaleProduct : SaleProduct+";"+ReProduct)
另一答案
你需要在Ternary operator转换中使用Derived column
:
了解和描述您的情况:
( ISNULL([SaleProduct]) && ISNULL([ReProduct]) ) ? " " :
( !ISNULL([SaleProduct]) && ISNULL([ReProduct]) ) ? [SaleProduct] :
( ISNULL([SaleProduct]) && !ISNULL([ReProduct]) ) ? [SaleProduct] : ( [SaleProduct]+";"+[ReProduct] )
但是标签会导致Derived column
转换错误。因此它实际应该是:
(ISNULL([SaleProduct]) && ISNULL([ReProduct])) ? " " : (!ISNULL([SaleProduct]) && ISNULL([ReProduct])) ? [SaleProduct] : (ISNULL([SaleProduct]) && !ISNULL([ReProduct])) ? [SaleProduct] : ([SaleProduct]+";"+[ReProduct])
以上是关于如何在SSIS表达式中编写Case语句的主要内容,如果未能解决你的问题,请参考以下文章