oracle 中 connect by prior 递归算法
比如说地区表,是个树状结构,add表结构 编号(id),名称(name),父地址(pid)
需求:层级关系查询全部地区,子级
基本语法:
select … from tablename
connect by 条件1 start with 条件2
如广东的编号是 2 查询广东下面全部城市
select name from add connect by prior id=pid start with id='2'
-- connect by prior id=pid 就是说上一条记录的id 是本条记录的pid ,即本记录的父亲是上一条记录。
把上一条记录的id做条件 (本条)pid=(上条)id查询
-- start with id='2' 条件,不要条件就相当于查询全部了(如查询广东下面全部城市【广东的编号是2】)