Advertisement

牛客网SQL刷题记录

阅读量:

检索排在第三位的时间内入职的所有员工详细信息,并为了解决这个问题,在现有数据中所有员工的入职日期都不同。

复制代码
    SELECT *
     FROM employees
     ORDER BY hire_date DESC
     LIMIT 2,1;

OR

复制代码
    SELECT * 
     FROM employees x
     WHERE 3 = (SELECT SUM(x.hire_date <= y.hire_date) 
     			 FROM employees y)

检索所属部门当前(dept_manager.to_date='9999-01-01')负责人目前(salaries.to_date='9999-01-01')薪资明细信息以及其所属部门编号 dept_no
(特别注意:按员工编号 dept_no 升序排列输出结果)

复制代码
    SELECT s.emp_no, s.salary, s.from_date, s.to_date, d.dept_no
    FROM dept_manager AS d INNER JOIN salaries AS s ON d.emp_no = s.emp_no
    WHERE s.to_date = '9999-01-01'
    AND d.to_date = '9999-01-01'
    ORDER BY s.emp_no
  1. 检索所有已分配部门的所有员工的信息中的last_name、first_name以及dept_no(请确保按照输出描述中各字段排列顺序)
复制代码
    select last_name, first_name, dept_no
    from employees e inner join dept_emp d
    on e.emp_no = d.emp_no
  1. 检索全部员工的姓氏和名字,请注意他们的所属部门编号dept_no。此外,请同时包含那些尚未分配至任何部门的人员,并特别提示:请留意输出结果中各字段的具体排列顺序。
复制代码
    select last_name, first_name, dept_no
    from employees e left join dept_emp d 
    on e.emp_no = d.emp_no

收集所有员工入职时的薪水数据,并返回包含employee number和salary的信息。请注意,在该列表中会按employee number排序后降序排列。

全部评论 (0)

还没有任何评论哟~