A. 怎样用oraclel中的sql语句查询 emp表中工资大于平均工资的人员信息
select * from(
select emp.*,(select avg(sal+nvl(comm,0)) from emp) 平均工资 from emp)
where SAL+nvl(COMM,0)>平均工资;
或者
select * from emp where SAL+nvl(COMM,0)>(select avg(SAL+nvl(COMM,0)) from emp);
说明:工资包括 sal和comm(奖金),但是有的人没有奖金(NULL,为了处理这个NULL用到nvl函数),所以总工资是 [SAL+nvl(COMM,0)]
---
以上,希望对你有所帮助。
B. 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;
查询结果