-SELECT句で使用するSubquery
・一般的なScalar Subqueryの例
--職業が'MANAGER'の社員名と部署名を出力する例 SQL> SELECT ename, 2 (SELECT dname FROM dept d WHERE d.deptno = e.deptno) dept 3 FROM emp e 4 WHERE job = 'MANAGER'; ENAME DEPT ---------- -------------- JONES RESEARCH BLAKE SALES CLARK ACCOUNTING
・NULLを返すOuter JoinのScalar SubQuery例
--Scalar Subqueryは一致する値が無いとNULLを返すのでOuter Joinと同じ --下記は部署別最高給与情報を検索する例 --40部署には社員がいないので最高給与が検索されない。 SQL> SELECT d.deptno, d.dname, 2 (SELECT MAX(sal) 3 FROM emp 4 WHERE deptno = d.deptno) sal 5 FROM dept d; DEPTNO DNAME SAL ---------- -------------- ---------- 10 ACCOUNTING 5000 20 RESEARCH 3000 30 SALES 2850 40 OPERATIONS --同じ結果のOuter Join例 SQL> SELECT d.deptno, d.dname, MAX(e.sal) 2 FROM dept d, emp e 3 WHERE d.deptno = e.deptno(+) 4 GROUP BY d.deptno, d.dname 5 ORDER BY d.deptno; DEPTNO DNAME MAX(E.SAL) ---------- -------------- ---------- 10 ACCOUNTING 5000 20 RESEARCH 3000 30 SALES 2850 40 OPERATIONS
0 件のコメント:
コメントを投稿