Oracle Start With的用法

Oracle的Start With用于处理树形结构数据,常用于层级查询。通过Start With指定起始节点,Connect By定义连接条件,如PRIOR ID = PID表示父子关系。可以使用nocycle避免循环,level获取层级,isleaf判断是否为叶子节点。查询子节点时,可通过WHERE子句限制LEVEL。
摘要由CSDN通过智能技术生成

Start With (树查询)
问题描述:

在数据库中, 有一种比较常见得 设计模式, 层级结构 设计模式, 具体到 Oracle table中, 字段特点如下:

ID, DSC, PID;

三个字段, 分别表示 当前标识的 ID(主键), DSC 当前标识的描述, PID 其父级ID, 比较典型的例子 是 国家, 省, 市 这种层级结构;

省份归属于国家, 因此 PID 为 国家的 ID, 以此类推;

create table DEMO (
    ID varchar2(10) primary key,
    DSC varchar2(100),
    PID varchar2(10)
)
--插入几条数据

Insert Into DEMO values ('00001', '中国', '-1');
Insert Into DEMO values ('00011', '陕西', '00001');
Insert Into DEMO values ('00012', '贵州', '00001');
Insert Into DEMO values ('00013', '河南', '00001');
Insert Into DEMO values ('00111', '西安', '00011');
Insert Into DEMO values ('00112', '咸阳', '00011');
Insert Into DEMO values ('00113', '延安', '00011');

这样子就成了一个简单的树级结构, 我一般将 根节点的 PID 定为 -1;

Start With:

参考链接:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值