Oracle中connect by prior .... start with

本文通过创建测试表并插入数据,演示了如何使用 Oracle SQL 的 CONNECT BY 和 START WITH 子句来查询具有层级关系的数据。CONNECT BY 依据指定的条件建立记录间的层级关系,而 START WITH 则指明查询的起始行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一 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值是否一致.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cuiyaonan2000

给包烟抽吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值