本文介紹了在CASE語句中處理多個(gè)條件的派生列?的處理方法,對(duì)大家解決問題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!
問題描述
我有一個(gè)CASE
語句可以用,但因?yàn)槲冶仨氃赟SIS中執(zhí)行,所以我感到困惑:
SELECT [BPCNUM_0], TYPE,
CASE
WHEN [TYPE]=1 THEN 'Normal'
WHEN [TYPE]=2 THEN 'Divers'
WHEN [TYPE]=3 THEN 'Intra-Société'
WHEN [TYPE]=4 THEN 'Prospect'
END AS TYPE
FROM table
如您所見,Case語句計(jì)算一列中的值,并根據(jù)它們是什么重命名它們。
當(dāng)我在SSIS上嘗試此功能時(shí),它不起作用
[TYPE] == 1 ? "Normal" : [TYPE] == 2 ? "Divers" : [TYPE] == 3 ? "Intra-Société" : [TYPE] == 4 ? "Prospect"
我也試過
[TYPE] == "1" ? "Normal" : [TYPE] == "2" ? "Divers" : [TYPE] == "3" ? "Intra-Société" : [TYPE] == "4" ? "Prospect"
但它也沒有起作用。
推薦答案
您的表達(dá)式需要添加最后一個(gè)Else語句,因?yàn)樗鼞?yīng)該知道在驗(yàn)證上述條件時(shí)要賦值的值:
[TYPE] == 1 ? "Normal" :
[TYPE] == 2 ? "Divers" :
[TYPE] == 3 ? "Intra-Société" :
[TYPE] == 4 ? "Prospect" : ""
相當(dāng)于SQL中的以下內(nèi)容:
SELECT [BPCNUM_0], TYPE,
CASE
WHEN [TYPE]=1 THEN 'Normal'
WHEN [TYPE]=2 THEN 'Divers'
WHEN [TYPE]=3 THEN 'Intra-Société'
WHEN [TYPE]=4 THEN 'Prospect'
ELSE ''
END AS TYPE
FROM table
如果您需要賦值NULL
而不是空字符串,可以使用以下表達(dá)式(假設(shè)派生的列類型為DT_WSTR
):
[TYPE] == 1 ? "Normal" :
[TYPE] == 2 ? "Divers" :
[TYPE] == 3 ? "Intra-Société" :
[TYPE] == 4 ? "Prospect" : NULL(DT_WSTR,50)
這篇關(guān)于在CASE語句中處理多個(gè)條件的派生列?的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,