sqlServer遍历树,sql二叉树遍历

sqlserver遍历树形目录

使用sqlserver递推查询,可以直接查询出来。

创新互联建站是一家集网站建设,宁江企业网站建设,宁江品牌网站建设,网站定制,宁江网站建设报价,网络营销,网络优化,宁江网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

参考资料:

WITH lmenu(nav_id,nav_name,nav_parentid,level) as

(

SELECT nav_id,nav_name,nav_parentid,0 level FROM nav nav_parentid=0

UNION ALL

SELECT A.nav_id, A.nav_name,a.nav_parentid, b.level+1 FROM gs_nav A,lmenu b where a.nav_parentid= b.nav_id and nav_id = 10

)

SELECT * from lmenu

具体SQL语句还需要自己验证一下,上面的自己看着乱写的。

sqlserver 存储二叉树

看看数据表结构

表:Tree

current_id int (当前节点编号)

father_id int (父节点编号,如果是根节点,-1)

left_id int (左节点编号)

right_id int (右节点编号)

表:Node

Node_id int PK

Node_vaule nvarchar(100)

说明:Tree表是用来存储树型结构的,Node表是用来存储节点内容的

其中Tree表的current_id与Node表的Node_id是一一对应的

至于遍历的存储过程是要完成什么功能呢?

SQLserver 树类型,遍历问题,谢谢

Create Table Tb

(

Pid Varchar(50),

CEID Varchar(50),

Level int,

Ccode Varchar(50),

pCode Varchar(50)

)

Insert Into TB Values('','1',0,'产品1','')

Insert Into TB Values('1','2',1,'Test1','产品1')

Insert Into TB Values('1','3',1,'Test2','产品1')

Insert Into TB Values('2','4',2,'Test11','Test1')

Insert Into TB Values('2','5',2,'Test12','Test1')

Insert Into TB Values('3','6',2,'Test21','Test2')

Insert Into TB Values('3','7',2,'Test22','Test2')

Insert Into TB Values('6','8',3,'Test211','Test21')

Insert Into TB Values('6','9',3,'Test212','Test21')

Insert Into TB Values('6','10',3,'Test213','Test21')

With T

As

(

Select Pid,CEID,Ccode,Level,Convert(Varchar(4000),CEID) As Path From TB  Where Pid=''

Union All

Select TB.Pid,TB.CEID,TB.Ccode,TB.Level,Convert(Varchar(4000),T.Path+'-'+TB.CEID) From TB inner join T On TB.Pid=T.CEID

)

Select replicate('    ',level)+Ccode As Ccode From T

Order By Path


分享标题:sqlServer遍历树,sql二叉树遍历
本文网址:http://cdiso.cn/article/dsgcccc.html

其他资讯