【SQL 学习】LEVEL 伪列

本文通过一个具体例子展示了如何使用SQL的层次查询功能来获取组织结构数据。利用START WITH和CONNECT BY PRIOR子句从根节点开始递归地检索员工及其上级管理者的关系,并按层级排序显示结果。

SQL> select level, employee_id ,manager_id ,first_name ,last_name
  2  from emp
  3  start with employee_id =1
  4  connect by prior employee_id = manager_id
  5  order by level;

     LEVEL EMPLOYEE_ID MANAGER_ID FIRST_NAME LAST_NAME              
---------- ----------- ---------- ---------- ----------              
         1           1            James      Smith
         2          10          1 Kevin      Black               
         2           2          1 Ron        Johnson               
         2           4          1 Susan      Jones              
         3          13         10 Doreen     Penn              
         3           7          4 John       Grey               
         3          11         10 Keith      Long
         3           5          2 Rob        Green               
         3           3          2 Fred       Hobbs
         3          12         10 Frank      Howard
         3           6          4 Jane       Brown
         4           8          7 Jean       Blue
         4           9          6 Henry      Heyson
已选择13行。

已用时间:  00: 00: 00.04
SQL> select count(distinct level)
  2  from emp
  3  start with employee_id =1
  4  connect by prior employee_id =manager_id;

COUNT(DISTINCTLEVEL)
--------------------
                   4                                                                                                             
已用时间:  00: 00: 00.00
SQL> set pagesize 999
SQL> col employee for a25
SQL> select level,
  2  lpad('-',2*level-1) || first_name ||' '|| last_name as employee
  3  from emp
  4  start with employee_id =1
  5  connect by prior employee_id =manager_id;

     LEVEL EMPLOYEE                                                                                                              
---------- -------------------------
         1 -James Smith
         2   -Ron Johnson
         3     -Fred Hobbs
         3     -Rob Green
         2   -Susan Jones
         3     -Jane Brown
         4       -Henry Heyson
         3     -John Grey
         4       -Jean Blue
         2   -Kevin Black
         3     -Keith Long
         3     -Frank Howard
         3     -Doreen Penn
已选择13行。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22664653/viewspace-673260/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/22664653/viewspace-673260/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值