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

如何用SQL处理同表数据、消除NULL值并合并重复Code行?

能否用SQL查询把多行同Code的数据合并成单行无NULL值的结构?

现有数据表:

Codelabel1label2label3
code1sthnullnull
code1nullsth2null
code1sthnullsth3
code2nullword1null
code2word2nullnull
code2nullnullword3

目标是转换成每行Code唯一、无NULL值的表:

Codelabel1label2label3
code1sthsth2sth3
code2word2word1word3

完全可以做到,最通用的方法是按Code分组,用聚合函数过滤NULL值。绝大多数SQL数据库都支持MAX()或MIN()来实现,因为这两个函数会自动忽略NULL,只保留非NULL的值。

示例SQL语句:

SELECT
    Code,
    MAX(label1) AS label1,
    MAX(label2) AS label2,
    MAX(label3) AS label3
FROM your_table_name -- 替换成你的实际表名
GROUP BY Code;

简单解释

  • GROUP BY Code把相同Code的行归为一组,每组只会输出一行结果;
  • MAX(label1)会在当前Code分组里,挑出label1字段的非NULL值(如果同一分组里该字段有多个非NULL值且内容一致,就返回这个值;要是有不同值,得先确认业务逻辑是否允许,不过从你的示例看每个Code下每个label的非NULL值都是唯一的)。

如果你的数据库支持窗口函数,也能用COALESCE()配合窗口函数实现,但上面的GROUP BY加聚合函数的方法是最简洁高效、适配性最广的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 13:12:50