如何在SSIS表达式中编写Case语句

时间:2018-03-06 06:24:29

标签: sql sql-server ssis

我在SQL Code中遇到一个小问题。如何在Derived列任务中的SSIS中编写它。

reg query /?

我尝试过以下表达式 但没有得到任何东西

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

任何人都可以帮助我...

2 个答案:

答案 0 :(得分:0)

可以使用“派生”列转换中的“条件”运算符复制CASE语句。 根据您的情况,表达式就像

((ISNULL(SaleProduct) == True && ISNULL(ReProduct) == True) ? " " :((ISNULL(SaleProduct) == False && ISNULL(ReProduct) == True)? SaleProduct :(ISNULL(SaleProduct) == True && ISNULL(ReProduct) == False)? SaleProduct : SaleProduct+";"+ReProduct)

答案 1 :(得分:0)

您需要在"System.FormatException: 'String was not recognized as a valid DateTime'转化中使用Ternary operator

了解并描述您的情况:

Derived column

标签会导致 ( ISNULL([SaleProduct]) && ISNULL([ReProduct]) ) ? " " : ( !ISNULL([SaleProduct]) && ISNULL([ReProduct]) ) ? [SaleProduct] : ( ISNULL([SaleProduct]) && !ISNULL([ReProduct]) ) ? [SaleProduct] : ( [SaleProduct]+";"+[ReProduct] ) 转化错误。因此它应该是:

Derived column