首先,建表: create table T_TEST_WORD( id NUMBER, pid VARCHAR2(20), name VARCHAR2(20)) 插入数据: insert into T_TEST_WORD (id, pid, name)values (1, '-1', '中国');insert into T_TEST_WORD (id, pid, name)values (2, '1', '江苏');insert into T_
首先,建表:
create table T_TEST_WORD ( id NUMBER, pid VARCHAR2(20), name VARCHAR2(20) )
插入数据:
insert into T_TEST_WORD (id, pid, name) values (1, '-1', '中国'); insert into T_TEST_WORD (id, pid, name) values (2, '1', '江苏'); insert into T_TEST_WORD (id, pid, name) values (3, '1', '浙江'); insert into T_TEST_WORD (id, pid, name) values (4, '2', '南京'); insert into T_TEST_WORD (id, pid, name) values (5, '2', '无锡'); insert into T_TEST_WORD (id, pid, name) values (6, '1', '安徽'); insert into T_TEST_WORD (id, pid, name) values (7, '4', '雨花台区'); insert into T_TEST_WORD (id, pid, name) values (8, '-1', '美国'); insert into T_TEST_WORD (id, pid, name) values (9, '-1', '俄罗斯'); commit;
表1
其中PID为-1的代表根节点。
开始进行递归查询:
查询结果如下:
表2
说明:
select ... from tablename(表名) where 条件1 start with 条件2 connect by 条件3 and 条件4 ...
看下这个语句(由根节点向子节点查询):
select t.* , level from T_TEST_WORD t start with pid='-1' connect by prior
id = pid(由根节点向子节点查询)
从T_TEST_WORD表中查询所有记录,从pid=-1的开始查询,且上一次查询记录的id作为本次查询的pid,以上表为例,举例如下:
第一次查询出pid=-1的记录是id为1的那条。
第二次查询时,查询pid=1的(上次查询记录的id是1)记录,可以查询到id为2的那条记录
千博企业网站管理系统静态HTML搜索引擎优化单语言个人版介绍:系统内置五大模块:内容的创建和获取功能、存储和管理功能、权限管理功能、访问和查询功能及信息发布功能,安全强大灵活的新闻、产品、下载、视频等基础模块结构和灵活的框架结构,便捷的频道管理功能可无限扩展网站的分类需求,打造出专业的企业信息门户网站。周密的安全策略和攻击防护,全面防止各种攻击手段,有效保证网站的安全。系统在用户资料存储和传递中,
0
第三次查询时,查询pid=2的(上次查询记录的id是2)记录,可以查询到id为4的那条记录,以此类推......
由上,查询到了表2的记录。
由树的根节点向子节点查询时,查询节点的顺序是按照树的前序遍历(DLR)进行的(1,2,4,7,5,3,6,8,9),如下图1
图1:
(比较丑的图,凑合看吧,嘻嘻)
注意:那个level要有start with ...... connect by ...... 才有效哦,不然会报错的。
再看这句(由子节点向根节点查询):
select t.* ,level from T_TEST_WORD t start with pid='2' connect by id = prior pid
从pid=2的开始(向上)查询,且上一次查询记录的pid作为本次查询的id
prior挨着谁,就将谁作为本次查询的某某关键字,比如connect by id = prior pid,就是将上次的pid作为本次查询的id。
注意,level是伪列,查询数据所对应的级,或者说深度吧。
小菜的总结,有问题请指出,谢谢咯!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号