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

使用SQL CASE语句实现多列非空值顺序填充的数据迁移转换

数据迁移转换SQL实现(基于CASE语句)

核心SQL代码

SELECT 
    ID,
    -- 填充col1:按优先级取第一个非空源列
    CASE
        WHEN source1 IS NOT NULL THEN source1
        WHEN source2 IS NOT NULL THEN source2
        WHEN source3 IS NOT NULL THEN source3
        WHEN source4 IS NOT NULL THEN source4
        ELSE NULL
    END AS col1,
    -- 填充col2:在col1取值的源列之后,找下一个非空值
    CASE
        WHEN col1 = source1 THEN
            CASE
                WHEN source2 IS NOT NULL THEN source2
                WHEN source3 IS NOT NULL THEN source3
                WHEN source4 IS NOT NULL THEN source4
                ELSE NULL
            END
        WHEN col1 = source2 THEN
            CASE
                WHEN source3 IS NOT NULL THEN source3
                WHEN source4 IS NOT NULL THEN source4
                ELSE NULL
            END
        WHEN col1 = source3 THEN source4
        ELSE NULL
    END AS col2,
    -- 填充col3:在col2取值的源列之后,找下一个非空值
    CASE
        WHEN col2 = source2 THEN
            CASE
                WHEN source3 IS NOT NULL THEN source3
                WHEN source4 IS NOT NULL THEN source4
                ELSE NULL
            END
        WHEN col2 = source3 THEN source4
        ELSE NULL
    END AS col3,
    -- 填充col4:仅当col3来自source3时,取source4的非空值
    CASE
        WHEN col3 = source3 THEN source4
        ELSE NULL
    END AS col4
FROM your_table_name;

逻辑说明

  • col1:遵循source1 > source2 > source3 > source4的优先级,提取第一个非空值
  • col2:基于col1的来源列,在后续优先级的源列中提取第一个非空值
  • col3:基于col2的来源列,在后续优先级的源列中提取第一个非空值
  • col4:仅当col3来自source3时,提取source4的非空值

源数据示例

IDsource1source2source3source4
1val1.3
2val2.1val2.2
3val3.1val3.2val3.3val3.4
4val4.2val4.3val4.4
5val5.3val5.4
6val6.1val6.3
7val7.2val7.4
8val8.1val8.2val8.4
9val9.1val9.3val9.4
10val10.1val10.2val10.3

预期结果

IDcol1col2col3col4
1val1.3
2val2.1val2.2
3val3.1val3.2val3.3val3.4
4val4.2val4.3val4.4
5val5.3val5.4
6val6.1val6.3
7val7.2val7.4
8val8.1val8.2val8.4
9val9.1val9.3val9.4
10val10.1val10.2val10.3

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 06:14:57