派生列处理 CASE 语句中的多个条件?
Derived Column to handled mulitple conditions in CASE statement?
我有一个 CASE
语句可以工作,但是因为我必须在 SSIS 中做,所以我不知所措:
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 语句计算一列中的值并根据它们的内容重命名它们。
当我用 SSIS 尝试这个时,它没有用
[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"
但也没有用。
您的表达式需要添加最终的 ELSE 语句,因为它应该知道要分配的值,以防上述条件均不成立:
[TYPE] == 1 ? "Normal" :
[TYPE] == 2 ? "Divers" :
[TYPE] == 3 ? "Intra-Société" :
[TYPE] == 4 ? "Prospect" : ""
相当于SQL中的以下内容:
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
值而不是空字符串,可以使用如下表达式(假设派生列类型为DT_WSTR
):
[TYPE] == 1 ? "Normal" :
[TYPE] == 2 ? "Divers" :
[TYPE] == 3 ? "Intra-Société" :
[TYPE] == 4 ? "Prospect" : NULL(DT_WSTR,50)
我有一个 CASE
语句可以工作,但是因为我必须在 SSIS 中做,所以我不知所措:
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 语句计算一列中的值并根据它们的内容重命名它们。 当我用 SSIS 尝试这个时,它没有用
[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"
但也没有用。
您的表达式需要添加最终的 ELSE 语句,因为它应该知道要分配的值,以防上述条件均不成立:
[TYPE] == 1 ? "Normal" :
[TYPE] == 2 ? "Divers" :
[TYPE] == 3 ? "Intra-Société" :
[TYPE] == 4 ? "Prospect" : ""
相当于SQL中的以下内容:
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
值而不是空字符串,可以使用如下表达式(假设派生列类型为DT_WSTR
):
[TYPE] == 1 ? "Normal" :
[TYPE] == 2 ? "Divers" :
[TYPE] == 3 ? "Intra-Société" :
[TYPE] == 4 ? "Prospect" : NULL(DT_WSTR,50)