与Power Query类似的SSIS条件列

时间:2018-03-17 16:09:04

标签: sql-server excel ssis powerquery dataflowtask

对于在Excel中使用Power Query的SSIS来说,我有点新鲜。是否可以在SSIS中创建条件列,类似于Power Query中的方式。

例如,在Power Query中,您可以创建一个条件列,表示IF列[FileName]包含USA,Canada,United States,America =“North America”,否则为“null”。它将创建一个与北美和任何不符合标准的新列,它将为null。这样的事情在SSIS中是可能的。我尝试过使用了Substring和Findstring,但它并没有完全符合我的需要。

2 个答案:

答案 0 :(得分:2)

基本上你在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"
  • 结束

来源:sqlservercentral blog

答案 1 :(得分:0)

不确定。在数据流任务(也称为数据泵)中,有一个派生列组件,您可以在其中向数据流添加列并包含自定义表达式。