You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在SSIS中如何将两个无公共列的表按行对应合并为一个表

SSIS 按行序号匹配合并两个表操作方案

你之前用merge、union得到空值结果是因为这两个组件本身不支持无关联键的按行拼接逻辑,union是行上下堆叠,merge需要指定匹配键,你没有提前给两边生成匹配用的行号才会出现错位空值的情况,按以下步骤操作即可实现预期效果:

  • 步骤1:为两个输入表分别生成连续行号
    如果你的数据源是SQL数据库,推荐直接在源查询里添加行号字段,示例SQL语句:
    -- 第一张ID表的源查询
    SELECT ID, ROW_NUMBER() OVER(ORDER BY (SELECT NULL)) AS RowNum FROM 你的ID表名
    -- 第二张薪资表的源查询
    SELECT HourlyRate, Bonus, ROW_NUMBER() OVER(ORDER BY (SELECT NULL)) AS RowNum FROM 你的薪资表名
    
    如果你需要基于SSIS数据流生成行号,也可以使用「脚本组件」(转换类型),在脚本里定义递增变量赋值给新的RowNum字段即可。注意两边的行号排序逻辑要和你预期的匹配顺序一致,避免行对应错位。
  • 步骤2:对两个数据流做排序处理
    分别添加「排序」转换组件接入两个表的输出流,都选择RowNum字段作为升序排序键,删除其他不需要排序的字段的排序属性。
  • 步骤3:用合并联接完成关联
    把两个排序后的数据流都接入「合并联接」组件,联接类型选择内联接(仅当两个表行数完全一致时使用,行数不一致可以根据需求选左/右外联接),联接条件设置为两个表的RowNum字段相等,在输出列选择中勾选ID、HourlyRate、Bonus三个目标字段,无需输出RowNum。
  • 步骤4:输出结果到目标
    把合并联接的输出直接接入你的目标表组件,运行后即可得到逐行匹配的无空值结果。

内容的提问来源于stack exchange,提问作者justasking

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 20:24:04