`
- 浏览:
126476 次
- 性别:
- 来自:
上海
-
基于关系数据库系统链式存储的树型结构数据,求某结点下的子树所有结点算法(t-sql语言实现)
CREATE FUNCTION f_subtree(@dpcode varchar(9)) /*树型结构数据,求某结点下的的子树所有结点的自定义函数*/
RETURNS @new table([dpcode] [varchar] (9) , --结点编码
[dpname] [varchar] (20) , --结点名称
[dpcode_p] [varchar] (9) --此结点的父结点编码
) AS
BEGIN
declare @temp table([dpcode] [varchar] (9) , --结点编码
[dpname] [varchar] (20) , --结点名称
[dpcode_p] [varchar] (9) --此结点的父结点编码
) --数据临时存放表
declare @t table([dpcode] [varchar] (9) , --结点编码
[dpname] [varchar] (20) , --结点名称
[dpcode_p] [varchar] (9) --此结点的父结点编码
) --中间临时表
declare @tt table([dpcode] [varchar] (9) , --结点编码
[dpname] [varchar] (20) , --结点名称
[dpcode_p] [varchar] (9) --此结点的父结点编码
) --中间交换临时表
delete @temp
delete @t
delete @tt
delete @new
insert into @temp select * from dpet
insert into @t select * from @temp where dpcode_p=@dpcode
insert into @new select * from @t --结果临时表
while (exists(select * from @t where dpcode in (select dpcode_p from @temp)))
--当某层的结点全为叶子时,才停止循环
begin
insert into @tt select * from @t --中间交换临时表
delete @t
insert into @t select * from @temp where dpcode_p in
(select dpcode from @tt)
delete @tt
insert into @new select * from @t
end
insert into @new select * from @temp where dpcode=@dpcode
return
END
---------------------------------------------------(以下为存储过程实现)
CREATE TABLE dpet ( --树型结构数据的数据存放表结构
[dpcode] [varchar] (9) , --结点编码
[dpname] [varchar] (20) , --结点名称
[dpcode_p] [varchar] (9) --此结点的父结点编码
) ON [PRIMARY]
/*ms sql 2000调试通过,表temp,t,new,tt 结构与表dpet一致*/
CREATE PROCEDURE desc_dept(@dpcode varchar(9)) AS
--树型结构数据,求某结点下的的子树所有结点
truncate table temp
truncate table t
truncate table tt
truncate table new
insert into temp select * from dpet --数据临时存放表
insert into t select * from temp where dpcode_p=@dpcode --中间临时表
insert into new select * from t --结果临时表
while (exists(select * from t where dpcode in (select dpcode_p from temp)))
--当某层的结点全为叶子时,才停止循环
begin
insert into tt select * from t --中间交换临时表
truncate table t
insert into t select * from temp where dpcode_p in
(select dpcode from tt)
truncate table tt
insert into new select * from t
end
insert into new select * from temp where dpcode=@dpcode
GO
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
构数据的快速加载方法, 通过一种改进的基于广度优先的算法, 将树型数据按照一定的层次和需要, 分散地加载于树型结构上, 从 而较好地解决了大数量的树型数据在网页上树型结构加载时效率低下、延迟较长的问题。该方法...
树型结构算法树型结构算法树型结构算法树型结构算法
数据库关联树型结构生成与同步数据维护,Win XP;Delphi7
P2P中基于DHT的路由算法不支持范围查询,因此对高维数据查询的支持不是很好。当前P2P处理高维数据的主流方法是降维和空间填充技术,但两者均有很明显的缺点。针对这些问题,提出一种将树型结构——Baton树应用于高维...
树型控件,实现数据库读取数据到树型控件,并且右键实现添加、修改、删除功能。 可以在添加时判断时候已有项目。实现程序启动后树型菜单的各项自动展开。
一种基于Ajax的动态树型结构的设计与实现.pdf
js做的树型结构,应该是很好的,javascript作的树型结构javascript作的树型结构javascript作的树型结构javascript作的树型结构javascript作的树型结构javascript作的树型结构javascript作的树型结构javascript作的树型...
jb+数据库+三级树型菜单 jb+数据库+三级树型菜单
java递归树型结构通用数据库
网页树型结构快速加载大数据量数据的实现.
将数据库中的内容加入树型控件中,通过建立数据库,再与树型控件相连,实现数据库的访问。(33kb)
易语言源码数据库填充到树型框例程.rar 易语言源码数据库填充到树型框例程.rar 易语言源码数据库填充到树型框例程.rar 易语言源码数据库填充到树型框例程.rar 易语言源码数据库填充到树型框例程.rar 易语言源码...
delphi7 树型控件 自动根据数据集生成树型结构
本例是用JSP+EXTJS+JSON+MYQL实现的树型结构,例子结构清晰,便于学习。
pb9 用datawindow 实现 treeview 树型结构
• 程序是算法用某种程序设计语言的具体实现 数据结构:现实世界的数据模型 • 程序=算法+数据结构 • 数据结构主要指逻辑结构和物理结构。数据之间的相互关系称为逻辑结构。通常分为四类基本结构: • 一、集合 ...
基本要求:利用树型结构设计并实现一个简单的目录管理系统。功能主要包括: (1)系统可以对所有目录进行管理,类似C盘、D盘、E盘; (2)实现子目录和文件的新建、删除、查询、子目录和文件名称修改等功能; (3)按某种...
数据结构课程设计实验 树的遍历,文件目录结构的显示 实验报告 一、简介 树型结构是一类十分重要的非线性结构,它可以很好地描述客观世界中广泛存在的具有分支关系或层次特性的对象,如操作系统的文件构成、人工智能...
基于AJAX技术的动态树型结构的设计与实现.pdf
简单树型结构 js 用html .可以做任何动态页面(jsp asp php)