11.1- 数据库-SQL

本文介绍了几种复杂的SQL查询技巧,包括查找与指定员工具有相同管理者和部门的其他员工的方法、筛选出薪资高于所在部门平均水平的员工以及根据部门ID确定员工所在地等。通过实际案例展示了如何运用子查询和连接查询来解决这些问题。
  1. 1. dual 确实是一张表.是一张只有一个字段,一行记录的表. 
    2.习惯上,我们称之为'伪表'.因为他不存储主题数据.
    3. 他的存在,是为了操作上的方便.因为select 都是要有特定对象的.

  2. 与 查询与 141 号或 174 号员工的 manager_id 和 和 department_id 相同的
    的 其他员工的 employee_id, manager_id, department_id

[ 方式一]
select employee_id,manager_id,department_id
from employees
where manager_id in
    (select manager_id
    from employees
    where employee_id in (174,141))
    and
    department_id in (
        select department_id 
        from employees
        where employee_id in (174,141))
        and
        employee_id not in(174,141);
[ 方式二]
select employee_id,manager_id,department_id
from employees
where(manager_id,department_id)
    in
    (
    select manager_id,department_id
    from employees
    where employee_id in (141,174))
    and
    employee_id not in (174,141);




的 返回比本部门平均工资高的员工的 last_name, department_id, 
salary

SELECT a.last_name, a.salary,
a.department_id, b.salavg
FROM employees a,

 (SELECT department_id,
AVG(salary) salavg
FROM employees
GROUP BY department_id) b

 WHERE a.department_id = b.department_id
AND a.salary > b.salavg;
  1. 的 显式员工的 employee_id,last_name 和 和 location 。其中,若员工
    department_id 与 与 location_id 为 为 1800 的 的 department_id 相同,则
    location 为’Canada’, 其余则为’USA’ 。
SELECT employee_id, last_name,
(CASE department_id
WHEN (SELECT department_id FROM departments
WHERE location_id = 1800)
THEN 'Canada' ELSE 'USA' END) location
FROM employees;

employees 表中 employee_id 与 job_history  表中 employee_id 
于 相同的数目不小于 2 ,输出这些相同 id  的员工的 employee_id,last_name 
其 和其 job_id
select e.employee_id ,last_name,e.job_id
from employees e
    where 2<=(select count(*)
        from job_history
        where employee_id = e.employee_id
    );










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值