oracle 递归使用

来源:互联网 发布:安卓改定位软件 编辑:程序博客网 时间:2024/06/08 11:36

介绍oracle递归所涉及到的函数


start by prior子句用法
connect by 是结构化查询中用到的,


其基本语法是:
select ... from tablename

where 条件1

start with 条件2 
connect by 条件3 ;


例如:

很多时候,表结构会存在以下字段,

____________________

|     id           |  int  |  主键id |

|  parentId   | int  | 父级id   |

————————————


那么,如果涉及到业务,根据父级id 找到所属的主键id,

操作

方式1、直接条件查询父级id,则获取到主键id,

方式2、使用递归,根据父级id,递归查询获取主键id


分析

方式1 存在一个缺陷,如果该表数据存在多级别,那么该方式值获取到上一级,没法实现获取到顶级主键id


-- 根据子级获取父级id

SELECT * FROM tableName tn

START WITH tn.parentId=24 

CONNECT BY tn.id=prior tn.parentId ;

反之

connect by 里面对换位置,则实现根据父级id获取子级信息,如果想要实现多条件查询,可以使用where条件搭配使用







0 0
原创粉丝点击