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

Informatica环境下使用自连接实现表转换的SQL查询方案咨询

Informatica自连接实现数据转换SQL方案

转换规则梳理

通过对比输入输出数据,可明确转换逻辑如下:

  • 每个CODE需保留所有原有存在的CATEGORY值
  • 若CODE缺失原始CATEGORY=1,补充一行CATEGORY=100的记录
  • 若CODE缺失原始CATEGORY=2,补充一行CATEGORY=200的记录
  • 所有记录的COLOR与对应CODE的原有COLOR值保持一致

自连接实现SQL

假设原始表名为src_table,可使用如下标准ANSI SQL实现,兼容Informatica源限定符/SQL转换组件使用:

SELECT 
    t1.CODE,
    CASE 
        WHEN t2.CATEGORY IS NOT NULL THEN t2.CATEGORY
        WHEN t1.base_category = 1 THEN 100
        WHEN t1.base_category = 2 THEN 200
    END AS CATEGORY,
    t3.COLOR
FROM 
    -- 自连接生成全量CODE+原始CATEGORY基准组合
    (SELECT DISTINCT s1.CODE, s2.CATEGORY AS base_category
     FROM src_table s1
     CROSS JOIN (SELECT DISTINCT CATEGORY FROM src_table) s2) t1
-- 自连接匹配当前CODE是否存在对应原始CATEGORY
LEFT JOIN src_table t2 
    ON t1.CODE = t2.CODE 
    AND t1.base_category = t2.CATEGORY
-- 自连接获取每个CODE对应的固定COLOR值
INNER JOIN (SELECT DISTINCT CODE, COLOR FROM src_table) t3
    ON t1.CODE = t3.CODE
ORDER BY t1.CODE, CATEGORY;

效果验证

  • CODE=-1:仅原始存在CATEGORY=3,缺失1和2,输出3、100、200,符合目标
  • CODE=18578:原始存在CATEGORY=2、3,缺失1,输出2、3、100,符合目标
  • CODE=20032:原始存在CATEGORY=1、2、3,全部保留,符合目标

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 16:54:02