0

我对 SSIS 有点陌生,因为我经常在 Excel 中使用 Power Query。是否可以在 SSIS 中创建条件列,类似于在 Power Query 中的方式。

例如,在 Power Query 中,您可以创建一个条件列来表示 IF 列 [FileName] 包含 USA、Canada、United States、America = "North America" 否则为 "null"。它将创建一个包含北美的新列,并且任何不符合条件的内容都将为空。在 SSIS 中是否有可能发生这样的事情。我试过使用 Substring 和 Findstring 但是它并没有完全满足我的需要。

4

2 回答 2

2

基本上你正在寻找一个像这样的三元运算符条件derived column

(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"

来源:sqlservercentral 博客

于 2018-03-19T06:06:30.107 回答
0

当然。在数据流任务(又名数据泵)中有一个派生列组件,您可以在其中将列添加到数据流并包含自定义表达式。

于 2018-03-17T19:29:20.740 回答