(05)oracle新人筆記------子查詢練習(重點)

 

 

1.

SELECT empno,ename,sal

FROM emp

WHERE sal>(SELECT sal FROM emp WHERE empno=7782)

AND job=(SELECT job FROM emp WHERE empno=7369);

 

2.

SELECT ename,sal

FROM emp

WHERE sal=(SELECT MAX(sal) FROM emp);

 

3.SELECT e.deptno,dname,MIN(sal)

FROM emp e,dept d

WHERE e.deptno=d.deptno

GROUP BY e.deptno,dname

HAVING MIN(sal)>(SELECT MIN(sal)

                 FROM emp

                 WHERE deptno=10)

 

 

4.

SELECT empno,ename,sal

FROM emp

WHERE (sal,deptno) IN(SELECT MIN(sal),deptno

                      FROM emp

                      GROUP BY deptno)

 

5

SELECT w.ename,w.sal

FROM emp w, emp m

WHERE w.mgr=m.empno

AND m.ename='KING';

 

6

SELECT ename,sal,hiredate

FROM emp

WHERE hiredate>

       (SELECT hiredate FROM emp WHERE ename='SMITH');

 

 

 

 

7

SELECT emp.ename,dept.loc

FROM emp,dept

WHERE dept.loc='NEW YORK'

AND emp.deptno=dept.deptno;

 

 

 

8

SELECT ename,hiredate

FROM emp

WHERE deptno=(SELECT deptno FROM emp WHERE ename='SMITH');

 

9.

SELECT empno,ename

FROM emp

WHERE sal>(SELECT AVG(sal) FROM emp); 

 

 

10.

SELECT w.ename,w.sal

FROM emp w,emp m

WHERE w.mgr=m.empno

AND m.ename='KING';

 

11.

SELECT emp.ename,emp.job

FROM emp,dept

WHERE dept.deptno=(SELECT dept.deptno

                       FROM dept

                       WHERE dept.dname='RESEARCH')

AND emp.deptno=dept.deptno;

 

12.

SELECT deptno,AVG(sal)

FROM emp

GROUP BY deptno

HAVING AVG(sal)>(SELECT AVG(sal) FROM emp WHERE deptno=20)

 

 

13.

SELECT ename,sal,avgsal,sal-avgsal

FROM emp e,(SELECT deptno,AVG(sal) avgsal

              FROM emp

              GROUP BY deptno) d

WHERE e.deptno=d.deptno

AND e.sal>d.avgsal;

 

 

 

 

14.

SELECT deptno

FROM emp

GROUP BY deptno

HAVING COUNT(empno)>0;

 

15.

SELECT empno,ename,sal

FROM emp

WHERE sal>(SELECT sal FROM emp WHERE ename='SMITH');

 

16.

SELECT w.ename,w.hiredate,m.ename,m.hiredate

FROM emp w,emp m

WHERE w.hiredate

AND w.mgr=m.empno;

 

SELECT w.ename,w.hiredate,m.ename,m.hiredate

FROM emp w,emp m

WHERE w.hiredate<(SELECT m.hiredate

                  FROM emp WHERE w.mgr=m.empno

                  AND empno=w.empno);

 

17.

SELECT w.ename,m.ename

FROM emp w,emp m

WHERE w.mgr=m.empno;

 

18.

SELECT d.dname,COUNT(e.empno)

FROM emp e,dept d

WHERE e.deptno=d.deptno

GROUP BY d.dname;

 

19.

SELECT ename

FROM emp

WHERE sal IN(SELECT MAX(sal) FROM emp GROUP BY deptno);

 

20.

SELECT ename,sal

FROM emp

WHERE deptno=(SELECT deptno FROM emp WHERE empno=7369)

AND empno<>7369;

 

21.

SELECT ename

FROM emp

WHERE deptno=(SELECT deptno

              FROM emp WHERE ename

              like '%W%');

 

22.

SELECT ename,sal

FROM emp

WHERE sal>(SELECT AVG(sal) FROM emp);

 

23.

SELECT e.ename,e.sal,f.sal

FROM emp e,(SELECT deptno,AVG(SAL) sal

              FROM emp

              GROUP BY deptno) f

WHERE e.sal>f.sal

AND e.deptno=f.deptno

 

24.

SELECT ename,sal

FROM emp

WHERE (mgr,sal) IN(SELECT mgr,MIN(sal)

                FROM emp

                GROUP BY mgr)

 

25.

SELECT a.ename,a.hiredate

FROM emp a,(SELECT MAX(sal) maxsal FROM emp) b

WHERE a.hiredate>(SELECT hiredate

                  FROM emp

                  WHERE sal=b.maxsal);

 

26

SELECT a.dname,b.avgsal

FROM dept a,(SELECT deptno,AVG(sal) avgsal

              FROM emp

              GROUP BY deptno

              HAVING AVG(sal)=(SELECT MAX(AVG(sal))

                               FROM emp

                               GROUP BY deptno)) b

WHERE a.deptno=b.deptno;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章