加入收藏 | 设为首页 | 会员中心 | 我要投稿 厦门网 (https://www.xiamenwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

sql – SSIS – 在另一个表上执行查找以获取相关列

发布时间:2021-02-23 16:36:43 所属栏目:编程 来源:网络整理
导读:我想在SSIS中执行select语句,但是这个select语句从另一个组件中获取一个参数,并且该select语句的列必须用作其他组件的输入. 例如: select id from myTable where name = (column from a previous component). 并且上述select语句的“id”内容应该是未来组件

我想在SSIS中执行select语句,但是这个select语句从另一个组件中获取一个参数,并且该select语句的列必须用作其他组件的输入.

例如:

select id from myTable where name = (column from a previous component).

并且上述select语句的“id”内容应该是未来组件可以使用的列.

如果我添加一个“OLE DB命令”组件,它允许我引用其他组件作为输入,但我无法从中生成输出.似乎OLE DB Command组件仅用于更新/插入语句?

关于如何做的任何想法?

解决方法

实际上,这是Lookup的一个案例.看来你想按名称进行查找并返回id.很简单.以下是我创建此示例的方法:

>将数据流任务拖到设计图面上.双击它切换到它.
>为我的数据库创建连接管理器
>拖到设计图面上:

> OLE DB源
>查找转换
> OLE DB目标

>将源连接到目标查找.这是我们想要到达目的地的“查找匹配输出”.见图1.
>配置源.我的源表只有id和name列.
>配置查找

>常规选项卡:使用OLE DB连接
>“连接”选项卡:指定相同的连接,但使用“查找”表.我的查找表只是id和name,但名称是唯一的,所以它作为查阅列更有意义.
>在列选项卡上,配置要映射到name的名称,并将“id”作为输出.将查找操作配置为“添加新列”,并将该列命名为“lookupId”.见图2.
>忽略其他两个标签

>配置输出以获取所有三列.见图3.

就这样.对于源中的每一行,name列将用于匹配查找表的name列.每个匹配都会将其id列作为新的lookupId列.所有三列都将前往目的地.

图1:

图2:

图3:

(编辑:厦门网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读