
正文
sqlserver树状,sqlserver b树
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
SqlServer树形结构的深度排序怎么实现
/*
转一个邹老大的例子
*/
--测试数据
DECLARE @t TABLE(ID char(3),PID char(3),Name nvarchar(10))
INSERT @t SELECT '001',NULL ,'山东省'
UNION ALL SELECT '002','001','烟台市'
UNION ALL SELECT '003','001','青岛市'
UNION ALL SELECT '004','002','招远市'
UNION ALL SELECT '005',NULL ,'四会市'
UNION ALL SELECT '006','005','清远市'
UNION ALL SELECT '007','006','小分市'
--深度排序显示处理
--生成每个节点的编码累计(相同当单编号法的编码)
DECLARE @t_Level TABLE(ID char(3),Level int,Sort varchar(8000))
DECLARE @Level int
SET @Level=0
INSERT @t_Level SELECT ID,@Level,ID
FROM @t
WHERE PID IS NULL
WHILE @@ROWCOUNT0
BEGIN
SET @Level=@Level+1
INSERT @t_Level SELECT a.ID,@Level,b.Sort+a.ID
FROM @t a,@t_Level b
WHERE a.PID=b.ID
AND b.Level=@Level-1
END
--显示结果
SELECT a.*
FROM @t a,@t_Level b
WHERE a.ID=b.ID
ORDER BY b.Sort
/*--结果
相关问答
Q1: 怎么把Excel中树形结构的数据导入SQLSERVER
把Excel通过sqlserver导入到数据库中,会形成一张表,默认你现在Excel存储就是以树型存储,只需用sqlserver查询显示出效果。
这是我以前回答的问题,可解决!
参考:
Q2: sqlserver查询树形结构的所有子节点
用标准sql的with实现递归查询(sql2005以上肯定支持,sql2000不清楚是否支持):
with subqry(id,name,pid) as (
select id,name,pid from test1 where id = 5
union all
select test1.id,test1.name,test1.pid from test1,subqry
where test1.pid = subqry.id
)
select * from subqry;
Q3: pl/sql如何现实像sqlserver中的树形结构目录界面,就是能查看表视图那样的界面。
可以按如下方法查看:
1、用指定用户登录pl/sql。
2、登录后,看左边的树。
3、找到tables,然后点击。其中红框部分即为表的界面。
4、找到views,然后点击。其中红框部分即为视图的界面。






