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

如何用第二张表填充null值且保留原表其他数据?

解决方案:用COALESCE填充NULL值并保留原表数据

核心思路是通过LEFT JOIN关联两张表,再用COALESCE函数优先保留Table A的非NULL值,仅当Table A对应字段为NULL时,用Table B的对应值填充。

正确SQL代码

SELECT 
    a.name,
    COALESCE(a.dept, b.dept) AS dept,
    a.job
FROM table_a AS a
LEFT JOIN table_b AS b
    ON a.name = b.name;

代码说明

  • COALESCE(a.dept, b.dept):依次检查参数,返回第一个非NULL的值。对于mark和cindy,Table A的dept是retail(非NULL),所以直接保留;对于jon、mary、lucy,Table A的dept为NULL,就会取Table B中对应的dept值。
  • LEFT JOIN确保Table A的所有行都被保留,即使Table B中没有匹配的记录。

执行结果

namedeptjob
jonhranalyst
maryhrsupervisor
lucyfinanceactuary
markretailmanager
cindyretailsales

如果后续需要填充其他字段(比如job字段),同样可以用COALESCE处理,例如COALESCE(a.job, b.job) AS job,按需调整即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 15:05:16