一 connect by prior ....start with
废话少说上测试代码.
create table test_table_c(id number primary key,description varchar(255),parent_id number);
insert into test_table_c(id,description,parent_id) values(1,'cuiyaonan2',null);
insert into test_table_c(id,description,parent_id) values(2,'cuiyaonan20',1);
insert into test_table_c(id,description,parent_id) values(3,'cuiyaonan200',2);
insert into test_table_c(id,description,parent_id) values(4,'cuiyaonan2000',3);
insert into test_table_c(id,description,parent_id) values(5,'cuiyaonan2000@',4);
insert into test_table_c(id,description,parent_id) values(6,'cuiyaonan2000@1',5);
insert into test_table_c(id,description,parent_id) values(7,'cuiyaonan2000@16',6);
显示结果为

执行语句
select * from test_table_c connect by prior parent_id = id start with id =7;
显示结果为:

执行语句
select * from test_table_c connect by parent_id = prior id start with id =1;
显示结果:

注释 :prior 表示上一条记录. prior +字段 表示上一条记录的某个字段.如
parent_id = prior id
表示上一条记录的id与本条记录的parent_id值是否一致.
本文通过创建测试表并插入数据,演示了如何使用 Oracle SQL 的 CONNECT BY 和 START WITH 子句来查询具有层级关系的数据。CONNECT BY 依据指定的条件建立记录间的层级关系,而 START WITH 则指明查询的起始行。
424

被折叠的 条评论
为什么被折叠?



