Oracle 查询练习

匿名 (未验证) 提交于 2019-12-03 00:27:02

--1.

--

select * from

(select emp.deptno no,dept.dname name,avg(sal) avgsal

(select max(AVGSAL) from

--

select * from

--2

select empno,ename,sal,dname

--3

select ename,e.job,e.sal from emp e,(select job,min(sal) minsal

--4

select t.ename mgr,e.ename from emp e,

--5

select t1.empno,t1.ename,t1.mgr,t2.sal mgrsal from emp t1,emp t2

where t1.mgr=t2.empno order by mgrsal desc

--6

select count(*) ,avg(sal) from

(select sal,comm,nvl2(comm,1,0) nvl from emp)

group by nvl order by nvl desc

--725002500

select * from

where rownum=1

--8

select t.empno,t.ename,d.dname from dept d,

(select t1.empno,t1.ename,t1.deptno from emp t1,emp t2

where d.deptno=t.deptno

--94

select dname from emp,dept where emp.deptno=dept.deptno

group by dept.deptno,dept.dname having count(*)>=4

--10“SMITH”

select * from emp

where sal>(select sal from emp where ename='SMITH')

--11'S'

select dname,sum(sal),count(emp.deptno)

--12"CLERK"

select dname,count(*) num from emp e,dept d

where e.deptno=d.deptno and job='CLERK' group by dname

--133000

select * from emp where empno in

(select t1.mgr from emp t1,emp t2

where t1.mgr=t2.empno and t2.sal>3000)

--14"sales"

select ename from emp e,dept d

where e.deptno=d.deptno and dname='SALES'

--1530

select ename,sal,dname from emp e,dept d

where e.deptno=d.deptno

and sal>all(select sal from emp where deptno=30)

--16

select d.deptno,d.dname,count(*) num from emp e,dept d

where e.deptno=d.deptno group by d.deptno,d.dname

--17(没看懂题目要求,好像有点问题)

select dname,j.job,djavgsal,davgsal,javgsal from

full outer join

on (dj.job=j.job)

--18"BLAKE""BLAKE"

select * from emp

where deptno in (select deptno from emp where ename='BLAKE')

and ename!=(select ename from emp where ename='BLAKE')

--19“KING”

select d.deptno,dname,count(ename) from emp e, dept d where

e.deptno=d.deptno and

d.deptno=(select deptno from emp where ename='KING') group by dname,d.deptno

--20"WARD"

select ename from emp where hiredate=(

select max(hiredate) from emp where

deptno=(select deptno from emp where ename='WARD'))

and deptno=(select deptno from emp where ename='WARD')

--21

(select mgr from emp where mgr is not null)

--22A

select dname from(select count(ename) a ,dname from emp e,dept t

where e.deptno=t.deptno and ename like 'A%' group by dname order by a desc)

where rownum=1

--23SMITH

文章来源: Oracle 查询练习
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!