时间: 2021-08-13 作者:daque
oracle 供给了一个风趣的功效 connect by 子句,它不妨对具备家属树构造的分枝举行排序。它的用处有 组织或公司的各层构造,财政的科目代码等。
要运用查问遍历,须要在将数据在基表中依照档次构造举行保存。比方一个构造组织即是如许的典范例子:
实行语句:
select column
from table_name
start with column=value
connect by prior 父主键=子外键
例1:在oracle的emp 表中,每一条记载都有一个独一标识暂时雇员的empno和标识这个雇员的司理的mgr列。即使mgr 为空,则该雇员是该组织的最顶级。此刻要列出每个雇员的档次构造(从顶究竟):
select lpad(' ',4*(level-1))||ename name ,empno,mgr from emp
start with mgr is null
connect by prior empno=mgr;
name empno mgr
-------------------- --------- ---------
king 7839
jones 7566 7839
scott 7788 7566
adams 7876 7788
ford 7902 7566
smith 7369 7902
blake 7698 7839
allen 7499 7698
ward 7521 7698
martin 7654 7698
turner 7844 7698
james 7900 7698
clark 7782 7839
miller 7934 7782
14 rows selected.
sql>
从查问截止中不妨看出,因为jones、blake、clark的上级是king,以是jones等mgr(司理编号)=king的empno号,即king的径直部下是jones、blake、clark,由于她们的mgr与king的empno一律。