网络学院
迷城学吧
硬件
手机
旅游
生活
渔鱼
美图
电影
游戏
  导航: 迷城学吧 · 数据库类教程 · Oracle教程 · Oracle综合技巧

PL/SQL基本的:阶层查询(1)

 
最新推荐文章
图文推荐
 
『PL/SQL基本的:阶层查询(1)』如果文章有大量图片,显示会较慢,请等待图片下载完成
 
点击数: 更新时间:2007-7-1 13:18:59 

ORACLE 10g新增了阶层查询操作符PRIOR,CONNECT_BY_ROOT。

PRIOR

阶层查询的CONNECY BY condition的条件式需要用到PRIOR来指定父节点,作为运算符,PRIOR和加(+)减(-)运算的优先级相同。

阶层查询

语法:START WITH condition CONNECT BY NOCYCLE condition

◆START WITH 指定阶层的根

◆CONNECT BY 指定阶层的父/子关系

◆NOCYCLE 存在CONNECT BY LOOP的纪录时,也返回查询结果。

◆condition ... PRIOR expr = expr 或者 ... expr = PRIOR expr

例:

CONNECT BY last_name != 'King' AND PRIOR employee_id = manager_id ... 

CONNECT BY PRIOR employee_id = manager_id and

PRIOR account_mgr_id = customer_id ...

CONNECT_BY_ROOT

查询指定根的阶层数据。

CONNECT BY子句的例子

通过CONNECT BY子句定义职员和上司的关系。

    SQL>SELECT employee_id, last_name, manager_id 

FROM employees

CONNECT BY PRIOR employee_id = manager_id;

EMPLOYEE_ID LAST_NAME MANAGER_ID

----------- ------------------------- ----------

101 Kochhar 100

108 Greenberg 101

109 Faviet 108

110 Chen 108

111 Sciarra 108

112 Urman 108

113 Popp 108

200 Whalen 101

LEVEL的例子

通过LEVEL虚拟列表示节点的关系。

SQL>SELECT employee_id, last_name, manager_id, LEVEL

FROM employees

CONNECT BY PRIOR employee_id = manager_id;

EMPLOYEE_ID LAST_NAME MANAGER_ID LEVEL

----------- ------------------------- ---------- ----------

101 Kochhar 100 1

108 Greenberg 101 2

109 Faviet 108 3

110 Chen 108 3

111 Sciarra 108 3

112 Urman 108 3

113 Popp 108 3

START WITH子句的例子

通过START WITH指定根节点,ORDER SIBLINGS BY保持阶层的顺序。

SQL>SELECT last_name, employee_id, manager_id, LEVEL 

FROM employees

START WITH employee_id = 100

CONNECT BY PRIOR employee_id = manager_id

ORDER SIBLINGS BY last_name;

LAST_NAME EMPLOYEE_ID MANAGER_ID LEVEL

------------------------- ----------- ---------- ----------

King 100 1

Cambrault 148 100 2

Bates 172 148 3

Bloom 169 148 3

Fox 170 148 3

Kumar 173 148 3

Ozer 168 148 3

Smith 171 148 3

De Haan 102 100 2

Hunold 103 102 3

Austin 105 103 4

Ernst 104 103 4

Lorentz 107 103 4

Pataballa 106 103 4

Errazuriz 147 100 2

Ande 166 147 3

Banda 167 147 3


共2页: 1 [2] 下一页

[1] [2] 下一页

如果您有什么疑问,可以至论坛提出或者解答他人的疑问    返回页面顶部

·上一篇:
·下一篇:
·导航: 迷城学吧 · 数据库类教程 · Oracle教程 · Oracle综合技巧
网友自拍|生活百味|历史图片|摄影世界|明星图片|体坛图库|美女图片|图片纪实|世界奇观
相关文章
advertisement
Photshop高手进阶

关于站点 - 广告服务 - 联系我们 - 版权隐私 - 免责声明 - 合作伙伴 - 程序支持 - 网站地图 - 申请链接 | 设为首页 | 本页加入收藏 返回顶部  
网站文本地图
  版权所有:迷城学吧 欢迎各种媒体转载我们的原创作品[转载请注明出处]
Copyright © 2005-2008 www.McXb.com online services. all rights reserved. 蜀ICP备05015578
Template designed by Monsi. Optimized for 1024x768 to Firefox and MS-IE6 7. Site powered by JoyON.
红盾Gov315
有一个迷样的城市
在每个人的内心深处
让我们探索发掘这古老的墓