繁体   English   中英

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

[英]How to write Case statement in SSIS expression

我在 SQL 代码中有一个小条件。 我如何在派生列任务中的 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)

您需要在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]) 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM