您的位置:首页 > 数据库 > Oracle

Oracle递归查询

2017-06-07 00:00 656 查看
Oracle中的递归查询语句为start with .... connect by prior,为中序遍历算法。

基本语法是:

select * from tablename

start with 条件1

connect by 条件2

where 条件3

条件1: 是根结点的限定语句,当然可以放宽限定条件,以遍历多个根结点,实际就是多棵树。

条件2:是连接条件,其中用PRIOR表示上一条记录。
比如connect by prior id = parent_id就是说上一条记录的Id 是本条记录的Parent_Id

条件3:过滤返回的结果集。

PRIOR关键字

运算符PRIOR被放置于等号前后的位置,决定着查询时的检索顺序。

PRIOR被置于CONNECT BY子句中等号的前面时,则强制从根节点到叶节点的顺序检索,为自顶向下查找。
如:connect by prior id = parent_id

PIROR运算符被置于CONNECT BY 子句中等号的后面时,则强制从叶节点到根节点的顺序检索,为自底向上的查找。
如:connect by id = prior parent_id

PS:当CONNECT BY后指定多个连接条件时,每个条件都应指定prior关键字
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: