① oracle数据库。查询部门平均工资,平且显示工资等级,按部门分组,sql语句怎么写
如果是scott下的那几张表的话
selectt1.deptno,
t1.dname,
t1.avgsal,
max(case
whent1.avgsalbetweent2.losalandt2.hisalthen
t2.grade
end)grade
from(selecta.deptno,b.dname,round(avg(a.sal),2)avgsal
fromempa,deptb
wherea.deptno=b.deptno
groupbya.deptno,b.dname)t1,
salgradet2
groupbyt1.deptno,t1.dname,t1.avgsal
orderbyt1.deptno;
查询结果
② 用SQL SERVER查询教师平均工资,如果平均工资大于5000元,则显示“收入水平较高”,否则显示“收入
if((select avg(工资) from 教师信息表)>5000 )
begin
(select '收入水平较高')
end
else
begin
(select '收入水平较低')
end
③ sql语句求出第三到第五的工资
sql查询员工的基本工资排名第3-5位的姓名和基本工资,select top 4 姓名,工资 from 表a where 姓名 not in (select top 2 姓名 from 表a order by 工资 desc) order by 工资 desc
查工资的方法:
1、select * from 部门
2、where not exists (select * from 员工 where 员工.部门号=部门.部门号 and 工资 <= 5000)
④ 用SQL语句怎么查询最高工资和最低工资的人
1、首先查出最低工资和最高工资,要考虑到并列最高和最低的情况
2、使用最高工资和最低工资作为条件关联工资表,获得人的ID
3、使用人的ID关联用户表,查出人的信息
⑤ SQL第2高的薪水
你可以展开来看,这样容易理解,我将你子查询等价展开
其实那个子查询查出来的结果就是这样,因为你条件是E2表大于E1表的工资,所以只看右边那两条数据。然后数字1就代表条数,意思就是在这个查询中找一条记录符合的。那就是200了,因为100 是有2条记录。所以这样就找到第二大的。同理你可以把1换成2,那结果就是100。再换成0,那结果就是300,因为300不在这里
⑥ sql查询员工的基本工资排名第3-6位的姓名和基本工资
sql查询员工的基本工资排名第3-6位的姓名和基本工资
select top 4 姓名,工资 from 表a where 姓名 not in (select top 2 姓名 from 表a order by 工资 desc) order by 工资 desc