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

问题描述 投票:-1回答:2

我在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

谁可以帮我这个事 ...

sql sql-server ssis
2个回答
0
投票

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

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

0
投票

你需要在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]) 
© www.soinside.com 2019 - 2024. All rights reserved.