簡體   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