类似于 Power Query 的 SSIS 条件列
SSIS Conditional Column Similar to Power Query
我对 SSIS 有点陌生,因为我经常在 Excel 中使用 Power Query。是否可以在 SSIS 中创建条件列,类似于在 Power Query 中的创建方式。
例如,在 Power Query 中,您可以创建一个条件列来说明 IF 列 [FileName] 包含美国、加拿大、美国、美国 = "North America" 其他 "null"。它将创建一个包含北美的新列,任何不符合条件的列都将为空。在 SSIS 中有这样的可能吗?我已经尝试使用 Substring 和 Findstring,但它并不能完全满足我的需要。
当然可以。在数据流任务(又名数据泵)中有一个派生列组件,您可以在其中向数据流添加列并包含自定义表达式。
基本上您要在 derived column
中寻找这样的 ternary operator 条件:
(FINDSTRING([Name], "USA", 1) > 0) || (FINDSTRING([Name], "Canada", 1) > 0) || (FINDSTRING([Name], "United States", 1) > 0) || (FINDSTRING([Name], "America", 1) > 0) ? "North America" : NULL(DT_WSTR, 13)
为了解释它,我将其缩进为:
(FINDSTRING([Name], "USA", 1) > 0) ||
(FINDSTRING([Name], "Canada", 1) > 0) ||
(FINDSTRING([Name], "United States", 1) > 0) ||
(FINDSTRING([Name], "America", 1) > 0) ? "North America" :
NULL(DT_WSTR, 13)
要进一步修改它,您可以使用以下指南:
- 包含
like '%value%'
: FINDSTRING(col, "value", 1) > 0
- 从
like 'value%'
开始:FINDSTRING(col, "value", 1) == 1
- 以
like '%value'
结尾:REVERSE(LEFT(REVERSE(col), X)) == "value"
我对 SSIS 有点陌生,因为我经常在 Excel 中使用 Power Query。是否可以在 SSIS 中创建条件列,类似于在 Power Query 中的创建方式。
例如,在 Power Query 中,您可以创建一个条件列来说明 IF 列 [FileName] 包含美国、加拿大、美国、美国 = "North America" 其他 "null"。它将创建一个包含北美的新列,任何不符合条件的列都将为空。在 SSIS 中有这样的可能吗?我已经尝试使用 Substring 和 Findstring,但它并不能完全满足我的需要。
当然可以。在数据流任务(又名数据泵)中有一个派生列组件,您可以在其中向数据流添加列并包含自定义表达式。
基本上您要在 derived column
中寻找这样的 ternary operator 条件:
(FINDSTRING([Name], "USA", 1) > 0) || (FINDSTRING([Name], "Canada", 1) > 0) || (FINDSTRING([Name], "United States", 1) > 0) || (FINDSTRING([Name], "America", 1) > 0) ? "North America" : NULL(DT_WSTR, 13)
为了解释它,我将其缩进为:
(FINDSTRING([Name], "USA", 1) > 0) ||
(FINDSTRING([Name], "Canada", 1) > 0) ||
(FINDSTRING([Name], "United States", 1) > 0) ||
(FINDSTRING([Name], "America", 1) > 0) ? "North America" :
NULL(DT_WSTR, 13)
要进一步修改它,您可以使用以下指南:
- 包含
like '%value%'
:FINDSTRING(col, "value", 1) > 0
- 从
like 'value%'
开始:FINDSTRING(col, "value", 1) == 1
- 以
like '%value'
结尾:REVERSE(LEFT(REVERSE(col), X)) == "value"