【问题标题】:How to perform a Merge using the LIKE operator (or equivalent) in SSIS如何在 SSIS 中使用 LIKE 运算符(或等效运算符)执行合并
【发布时间】:2014-03-05 19:22:34
【问题描述】:

我一直在寻找这个答案很长一段时间,到目前为止,还没有找到解决方案。我正在 SSIS 中创建数据流任务,我需要使用 LIKE 运算符、FINDSTRING 或 CONTAINS 等连接不同数据源上的 2 个表。

这是我的数据的样子:

表 1 :: 数据源 1

| PersonName    |      Address       | 
      Josh         LA, California US   
      Ted          SF, California US
      Beth         NYC, New York US

Table2 :: 数据源 2

| StateID  |  StateName  | 
      01      California   
      02      New York

我需要在 Table1 上加入 Table2,其中 Table1.Address LIKE '%' + Table2.StateName '%'。 我想要的最终结果是这样的:

| PersonName    |   StateID  | 
      Josh           01 
      Ted            01
      Beth           02

我在 SSIS 中执行此操作,因此 Table1 和 Table2 是使用 OLE DB 源组件收集的,现在我需要找到一种方法来对这两个表执行非精确合并。

  • 我无法使用脚本组件

我尝试使用“查找转换”,其中 Table1 是查找的输入。然后转到->高级->“修改SQL语句”,我尝试了2件事没有奏效:

1)

select * from (select * from [dbo].[Table2]) [refTable]
where ? LIKE '%' + [refTable].[StateName] + '%'

2)

select * from (select * from [dbo].[Table2]) [refTable]
where FINDSTRING( ?, [refTable].[StateName],  1) > 0

有没有什么方法可以在不使用脚本组件的情况下实现我在 SSIS 中寻找的内容? 也许有一种方法可以使用模糊查找?如果是这样,我该如何配置?有没有高级的“合并加入”对象?

【问题讨论】:

  • 你不能只创建一个存储过程并通过查询生成一个结果集吗?
  • @TMcKeown 这两个表在不同的数据源中。

标签: sql sql-server-2008 ssis bids


【解决方案1】:

您在编辑后的 ​​Lookup 1) 上走在了正确的轨道上。我认为您只需要删除派生表,例如

select * from from [dbo].[Table2] where ? LIKE '%' + [StateName] + '%'

【讨论】:

    【解决方案2】:

    您不能使用 Lookup-Transformation 中的查询连接不同数据源中的两个表。 该查询用于定义要缓存和查看的数据源,并直接在已定义的数据源上运行以进行查找转换。例如,如果您只想查找 state_id 大于 10 的状态,您可以将查询定义为

    Select * from [dbo].[Table2] where StateID > 10
    

    实现这一点的最佳方法是将 Table1 作为您的 OLEDB 源,并使用脚本任务或派生列任务从列地址中提取语句。如果您执行脚本任务,请使用正则表达式。这个新的派生列将只有状态。

    在此之后,我们应该有一个基于 Table2 的查找转换。查找条件将在 Table2 中的 Statename 和 Table1 中的 Derived State 列上。

    另一种选择是进行合并-连接转换,可用于连接来自不同数据源的数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-06
      • 2010-12-19
      • 2021-03-01
      相关资源
      最近更新 更多