oracle connect by用法
2018-03-12 15:09
453 查看
oracle connect by用法
create table t_location( id number primary key, name varchar(16) not null, pid number not null ) insert into t_location values(1,'华东区',0); insert into t_location values(2,'华南区',0); insert into t_location values(3,'福建省',1); insert into t_location values(4,'江苏省',1); insert into t_location values(5,'福州市',3); insert into t_location values(6,'厦门市',3); insert into t_location values(7,'苏州市',4); insert into t_location values(8,'扬州市',4); insert into t_location values(9,'广东省',2); insert into t_location values(10,'广西省',2); insert into t_location values(11,'广州市',9); insert into t_location values(12,'深圳市',9); insert into t_location values(13,'南宁市',10); insert into t_location values(14,'桂林市',10); --2.1 从根节点查找叶子节点 select t.*, level, CONNECT_BY_ROOT(id) from t_location t start with t.id = 1 connect by prior t.id = t.pid; --2.2 从叶子节点查找上层节点 --第一种,修改prior关键字位置 select t.*, level, CONNECT_BY_ROOT(id) from t_location t start with t.id = 14 connect by t.id = prior t.pid; --第二种,prior关键字不动 调换后面的id=fid逻辑关系的顺序 select t.*, level, CONNECT_BY_ROOT(id) from t_location t start with t.id = 14 connect by prior t.pid = t.id; --查找某个结点的路由 select replace(wm_concat(name),',',' ') as addr from( select t.name,connect_by_root(id) as rid from t_location t start with t.name = '深圳市' connect by prior t.pid = t.id order by level desc; ) --查找所有结点的路由,出现问题,三个结点的,排序错误,出现'华南区 深圳市 广东省'这样的情况 select rid,replace(wm_concat(name),',',' ') as addr from( select t.name,connect_by_root(id) as rid from t_location t connect by prior t.pid = t.id order by level desc ) group by rid;
相关文章推荐
- Oracle Connect By Prior用法(实现递归查询)
- oracle中prior的用法,connect by prior,树形目录
- oracle 中 start with connect by 的用法
- Oracle中start with...connect by子句的用法
- oracle connect by用法
- Oracle start with connect by prior 用法
- Oracle Connect By用法
- oracle start with connect by 用法
- oracle中prior的用法,connect by prior,树形目录
- oracle connect by用法
- 转:Oracle Connect By用法
- Oracle树结构查询 start with ... connect by用法简介
- Oracle中start with...connect by子句的用法
- Oracle Connect By用法
- oracle递归函数--oracle start with connect by 用法
- oracle connect by用法
- Oracle Connect By Prior的用法
- Oracle中start with...connect by子句的用法
- Oracle_start_with_connect_by_prior_用法
- oracle connect by用法