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

Sql 如何在SSIS表达式中编写Case语句,sql,sql-server,ssis,Sql,Sql Server,Ssis,我在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

我在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)
您需要在
派生列中使用
转换:

要了解和描述您的状况:

  ( ISNULL([SaleProduct]) && ISNULL([ReProduct]) ) ? " " :
       ( !ISNULL([SaleProduct]) && ISNULL([ReProduct]) ) ? [SaleProduct] :
                       ( ISNULL([SaleProduct]) && !ISNULL([ReProduct]) ) ? [SaleProduct] : ( [SaleProduct]+";"+[ReProduct] )
但是制表符在
派生列
转换中导致错误。因此,它实际上应该是:

(ISNULL([SaleProduct]) && ISNULL([ReProduct])) ? " " : (!ISNULL([SaleProduct]) && ISNULL([ReProduct])) ? [SaleProduct] : (ISNULL([SaleProduct]) && !ISNULL([ReProduct])) ? [SaleProduct] : ([SaleProduct]+";"+[ReProduct]) 

首先。。。你为什么要这么做?只需将其留在SQL中。其次,语法不正确。它的
?:
。您的
之前?
不,我需要将其转换为SSI,我知道表达式不正确。你能给我一些建议吗@Nick.mcdermaids步骤1:把
放在正确的位置。你得到了什么?(ISNULL([SaleProduct])&(ISNULL([ReProduct]))?“”:(!ISNULL([SaleProduct])&&ISNULL([ReProduct])?[SaleProduct]:(ISNULL([SaleProduct])&&&!ISNULL([ReProduct])?[ReProduct]:[SaleProduct]+”;“+[ReProduct])为什么不能在线找到SSIS表达式参考指南?猜测之后,在发布论坛问题之前,应该先进行实际研究。