4.子查询

  1. 谁的工资比Abel高
select last_name,salary from employees where salary > (select salary from employees where last_name = 'Abel');

查询员工名为Chen的manager的信息

select last_name,salary from employees where employee_id = (select manager_id from employees where last_name = 'Chen');
  1. 单行子查询
    只返回一行数据,使用单行比较操作符
操作符含义
=等于
>大于
>=大于等于
<小于
<=小于等于
<>不等于

返回公司工资最少的员工的last_name,job_id和salary

select last_name,job_id,salary from employees where salary = (select min(salary) from employees)

查询最低工资大于50号部门最低工资的部门id和其最低工资

select department_id,min(salary) from employees group by department_id having min(salary) > (select min (salary) from employees where department_id =50)
  1. 多行子查询
    返回多行,使用多行比较操作符
操作符含义
IN等于列表中的任意一个
ANY和子查询返回的某一个值比较
ALL和子查询返回的所有值比较
select employee_id, last_name,job_id,salary from employees where job_id <> 'IT_PROG' and salary < any (select salary from employees where job_id = 'IT_PROG')

在这里插入图片描述
操作符为>时,比子查询返回的最小值的大即可成立,
操作符为<时,比子查询返回的最大值的小即可成立,

在这里插入图片描述
操作符为>时,比子查询返回的最大值的大才可成立,
操作符为<时,比子查询返回的最小值的小才可成立,
在这里插入图片描述
子查询返回null,sql不会报错

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值