2009年8月27日木曜日

階層構造の作成

今回は階層構造を作成します。
会社の体制、商品のカテゴリのような親子関係のデータを奇麗に取得する方法です。

SQLPLUS scott/tiger --少しすっきりと見るために.. セッティング先にしてましょう。
SQL> SET LINESIZE 100
SQL> SET PAGESIZE 100
SQL> COL ename FORMAT A20

SQL>SELECT LPAD(’ ’, 4*(LEVEL-1)) || ename ename, empno, mgr, job
FROM emp
START WITH EMPNO=7839
CONNECT BY PRIOR empno=mgr;
ENAME EMPNO MGR JOB
-------------------- ---------- ---------- ---------
KING 7839 PRESIDENT
JONES 7566 7839 MANAGER
SCOTT 7788 7566 ANALYST
ADAMS 7876 7788 CLERK
FORD 7902 7566 ANALYST
SMITH 7369 7902 CLERK


逆順で表示する場合にはCONNECT BY empno=PRIOR mgrのように修正します。

0 件のコメント:

コメントを投稿