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

存在重复emp_id记录时,如何筛选employee表中dpt_id为null的记录?

实现方法

以下两种SQL方案均可满足需求,可根据你的数据库环境选择使用:

方案一:直接筛选employee表目标记录

该方案从employee表中提取dpt_id为NULL的记录,自动覆盖“当两表存在相同emp_id时仅保留employee表对应记录”的需求——因为employee表中无dpt_id的记录本身dpt_id就是NULL,只要emp_id在department表中存在,这条记录就会被保留,不会被department表的记录干扰。

SELECT e.*
FROM employee e
WHERE e.dpt_id IS NULL;

方案二:合并两表并按优先级去重

如果需要同时从两表获取数据,但确保相同emp_id的记录仅保留employee表中dpt_id为NULL的条目,可使用该方案:

-- 优先取employee表中符合条件的记录
SELECT emp_id, emp_name, dpt_id
FROM employee
WHERE dpt_id IS NULL

UNION ALL

-- 再取department表中未在employee表出现过emp_id的记录
SELECT emp_id, emp_name, dpt_id
FROM department d
WHERE NOT EXISTS (
    SELECT 1 
    FROM employee e 
    WHERE e.emp_id = d.emp_id AND e.dpt_id IS NULL
);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 09:05:33