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

SQL如何按硬性约束合并两张表补全缺失值

实现逻辑

以table1的时间区间为唯一基准(table1的enter_date、exit_date均为准确值),仅对table1中标记为.的缺失字段,用table2中id、enter_date、exit_date三个字段完全匹配的记录的对应值填充,table2中与table1时间区间不匹配的重合记录直接丢弃。

通用SQL实现

SELECT 
  t1.id,
  COALESCE(NULLIF(t1.id2, '.'), t2.id2) AS id2,
  t1.enter_date,
  t1.exit_date,
  COALESCE(NULLIF(t1.type, '.'), t2.type) AS type
FROM table1 t1
LEFT JOIN table2 t2
  ON t1.id = t2.id 
  AND t1.enter_date = t2.enter_date 
  AND t1.exit_date = t2.exit_date

适配说明

如果使用的数据库不支持NULLIF函数,可替换为CASE WHEN写法,示例:

-- 替换NULLIF(t1.id2, '.')为
CASE WHEN t1.id2 = '.' THEN NULL ELSE t1.id2 END

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 00:51:00