SQL语句遍历树结构的数据表

SQL语句遍历树结构的数据表

2023年6月27日发(作者:)

SQL语句遍历树结构的数据表[转⾃]:肆尾葱的博客⼀、创建树结构的数据库表-- 数据库为 SQL Servercreate table treeTest( id int, parentId int, info varchar(10))-- 插⼊数据insert into treeTest(id,parentId,info) values(1,null,'root');insert into treeTest(id,parentId,info) values(2,1,'two');insert into treeTest(id,parentId,info) values(3,1,'three');insert into treeTest(id,parentId,info) values(7,2,'seven');insert into treeTest(id,parentId,info) values(8,2,'eight');insert into treeTest(id,parentId,info) values(9,2,'nine');insert into treeTest(id,parentId,info) values(4,3,'four');insert into treeTest(id,parentId,info) values(5,3,'five');insert into treeTest(id,parentId,info) values(6,3,'six');insert into treeTest(id,parentId,info) values(14,7,'fourteen');insert into treeTest(id,parentId,info) values(15,7,'fifteen');insert into treeTest(id,parentId,info) values(16,8,'sixteen');insert into treeTest(id,parentId,info) values(17,9,'seventeen');insert into treeTest(id,parentId,info) values(10,4,'ten');insert into treeTest(id,parentId,info) values(11,5,'eleven');insert into treeTest(id,parentId,info) values(12,5,'twelve');insert into treeTest(id,parentId,info) values(13,6,'thirteen');⼆、通⽤的 SQL 遍历⽅法在 SQL 语句中使⽤ with as 语句,详细介绍参考:

-- 遍历节点id为3的所有⼦节点-- ⼩括号中的参数需与查询表中的字段个数⼀致,即两个 select 关键字后的字段个数,有些数据库不允许第2个select关键字后⽤*号表⽰所有字段,如oracle-- = Id 没有顺序要求,如果改为 Id = 则语句向上遍历所有祖先节点with temp(id,parentId,info)as( select * from treeTest where id = 3 union all select t.* from treeTest t,temp where = Id) select * from temp返回结果:

三、Oracle 特有的树遍历⽅法-- 从id=5的节点开始,向下遍历所有⼦孙节点-- prior 关键字可放在 或 Id 的前⾯,决定遍历的⽅向select * from treeTest

start with =5

connect by prior = Id

发布者:admin,转转请注明出处:http://www.yc00.com/web/1687815905a47588.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信