SQL 查询语句(五)子查询

select语句中嵌套select语句,被嵌套的select语句就叫子查询,子查询可以出现在:

select..(select)..from..(select)..where..(select)..

一、where字句中的子查询

案例:找出比最低工资高的员工姓名和工资?

注意错误语句:select ename,sal from emp where sal>min(sal);因为where后面不能使用分组函数

正确思路:第一步,查询出最低工资

select min(sal) from emp;

第二步,查询大于最低工资的员工名字和工资:

select ename,sal from emp where sal>800;

第三步,合并:

select ename,sal from emp where (select min(sal) from emp);

二、from子句中的子查询

from后面的子查询可以将子查询的查询结果当作一张临时表看待。

案例:找出每个岗位的平均工资的工资等级?

第一步:找出每个岗位的平均工资:

select job,avg(sal) from emp group by job;

第二步:将以上查询结果看作一个临时表,进行表连接查询

select  t*,s.grade from (select job,avg(sal) as avgsal from emp group by job)  t join salgrade on t.avgsal between s.lowsal and s.hisal;

注意,必须给avg(sal)起别名,否则在表连接查询时 t.avg(sal)会被看作是一个函数而报错

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值