news 2026/10/28 1:38:04

力扣1965-丢失信息的雇员

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
力扣1965-丢失信息的雇员

表:Employees

+-------------+---------+ | Column Name | Type | +-------------+---------+ | employee_id | int | | name | varchar | +-------------+---------+ employee_id 是该表中具有唯一值的列。 每一行表示雇员的 id 和他的姓名。

表:Salaries

+-------------+---------+ | Column Name | Type | +-------------+---------+ | employee_id | int | | salary | int | +-------------+---------+ employee_id 是该表中具有唯一值的列。 每一行表示雇员的 id 和他的薪水。

编写解决方案,找到所有丢失信息的雇员 id。当满足下面一个条件时,就被认为是雇员的信息丢失:

  • 雇员的姓名丢失了,或者
  • 雇员的薪水信息丢失了

返回这些雇员的 idemployee_id,从小到大排序。

查询结果格式如下面的例子所示。

示例 1:

输入:Employees table: +-------------+----------+ | employee_id | name | +-------------+----------+ | 2 | Crew | | 4 | Haven | | 5 | Kristian | +-------------+----------+ Salaries table: +-------------+--------+ | employee_id | salary | +-------------+--------+ | 5 | 76071 | | 1 | 22517 | | 4 | 63539 | +-------------+--------+输出:+-------------+ | employee_id | +-------------+ | 1 | | 2 | +-------------+解释:雇员 1,2,4,5 都在这个公司工作。 1 号雇员的姓名丢失了。 2 号雇员的薪水信息丢失了。

思路:

本题涉及 Employees 表和 Salaries 表,两张表都以 employee_id 作为员工的唯一标识。题目要求找出员工信息不完整的员工编号,即员工只存在于其中一张表中,而在另一张表中缺少对应信息的情况。

解题时,首先需要同时保留两张表中的全部员工记录,因此采用全外连接的方式,将 Employees 表和 Salaries 表按照 employee_id 进行关联。全外连接可以保证即使某个 employee_id 只存在于其中一张表中,也不会被过滤掉,而是以 NULL 的形式展示另一张表中缺失的字段。

在完成全外连接后,通过判断字段是否为 NULL 来识别信息缺失的员工。如果 Employees 表中的 name 字段为 NULL,说明该 employee_id 在员工表中不存在;如果 Salaries 表中的 salary 字段为 NULL,说明该 employee_id 在薪资表中不存在。只要满足上述任意一种情况,就说明该员工的信息是不完整的,需要被筛选出来。

由于全外连接后,同一行中可能只有一张表的 employee_id 有值,另一张表的 employee_id 为 NULL,因此在最终输出时,需要对两个 employee_id 字段进行合并,取非空的那个作为最终的员工编号,从而保证每条记录都能正确返回 employee_id。

最后,根据题目要求,对查询结果按照 employee_id 进行升序排序,得到最终结果集。

/* Write your PL/SQL query statement below */ select nvl(e.employee_id,s.employee_id) employee_id from Employees e FULL OUTER JOIN Salaries s on e.employee_id = s.employee_id where (e.name is null or s.salary is null) order by employee_id
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/27 7:21:32

本凡码农引领杭州小程序开发解决方案赋能企业创新与发展

本凡码农的杭州小程序开发解决方案为企业提供了一种高效的数字化转型工具。我们的目标是帮助品牌快速适应市场变化,提升用户体验。通过定制化的小程序,企业能够实现从线上到线下的无缝连接,简化业务流程,从而更好地满足用户需求。…

作者头像 李华
网站建设 2026/10/28 20:28:53

Windows11系统文件wer.dll丢失或损坏问题 下载修复

在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…

作者头像 李华
网站建设 2026/10/27 4:42:19

vue基于Spring Boot的公务员考试练习系统的应用和研究_1p390k6z

目录 具体实现截图项目介绍论文大纲核心代码部分展示项目运行指导结论源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作 具体实现截图 本系统(程序源码数据库调试部署讲解)同时还支持java、ThinkPHP、Node.js、Spring…

作者头像 李华
网站建设 2026/10/28 2:40:38

测试机器人:下一代助手:AI如何重塑软件测试的未来

在软件测试领域,传统的手动测试和脚本化自动化测试正面临日益增长的复杂性和效率挑战。随着人工智能(AI)技术的迅猛发展,下一代测试助手——智能测试机器人——正逐步从概念走向现实,为测试从业者带来革命性变革。 AI…

作者头像 李华
网站建设 2026/10/28 13:30:12

在晶体塑性有限元模拟中,批量写入晶粒的取向和材料参数是一个常见但繁琐的任务。今天,我们就来聊聊如何用Python脚本自动化这个过程,省去手动输入的麻烦

批量写入晶体塑性有限元模拟中模型所需的所有晶粒的取向和材料参数首先,我们需要明确的是,每个晶粒的取向通常用欧拉角表示,而材料参数则包括弹性常数、硬化参数等。假设我们有一个包含所有晶粒信息的CSV文件,每行代表一个晶粒&am…

作者头像 李华