`
xiaoer_1982
  • 浏览: 1894626 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

树型结构数据,求某结点的所有父结点的自定义函数

阅读更多

CREATE FUNCTION f_father(@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 DPTCODE, DPTNAME, DPTCODE_P from base_dept
insert into @t select * from @temp where dpcode=@dpcode
insert into @new select * from @t --结果临时表
while ( 1=1)

begin
if (exists(select * from @t where dpcode ='001')) --当为根时,停止循环
begin
break
end
insert into @tt select * from @t --中间交换临时表
delete @t
insert into @t select * from @temp where dpcode in
(select dpcode_p from @tt)
delete @tt
insert into @new select * from @t
end
--insert into @new select * from @temp where dpcode=@dpcode

return
END

分享到:
评论

相关推荐

    基于Ajax技术的树型结构目录的实现

    这对于树型结构目录而言,意味着可以在用户点击展开某一分支时,动态地加载子节点数据,从而显著提高用户体验。 1. **动态加载技术**:通过Ajax的XMLHTTP组件XMLHTTPRequest对象异步发送请求,实现按需加载。 ```...

    如何展开存储在数据库中的树形数据结构.pdf

    树形数据结构是计算机科学中的一个重要概念,它广泛应用于表示具有层次关系的数据,如文件系统、组织结构图、家谱等。在关系数据库中,树形数据结构的实现通常采用父子关系来表示各个节点之间的层级关系。由于树形...

    数据结构试题及答案

    在树型结构中,除了树根结点外,每个结点都有且只有一个前驱结点,即父节点;除叶子结点外,其余每个结点都可以有多个后继结点,即子节点。 **3. 线性表的删除操作** 在线性表中删除第i个元素,需要将第i个元素...

    数据结构习题集与参考答案(重要).pdf

    4. 数据结构的逻辑结构主要分为线性结构、树型结构和图型结构。树型结构和图型结构统称为非线性结构。存储结构主要包括顺序存储和链式存储。 5. 线性结构的特点是,第一个结点没有前驱结点,其余结点有一个前驱结点...

    数据结构复习题目中国科技大学出版社出版,内容还好

    4. 数据结构的逻辑结构主要包括线性结构、树型结构和图型结构,其中树型结构和图型结构统称为非线性结构。存储结构主要包括顺序存储和链式存储。 5. 线性结构如数组,第一个结点无前驱,其余结点有一个前驱;最后一...

    数据结构习题.doc

    栈是一种后进先出(LIFO)的数据结构,常用于实现递归算法和函数调用。树是一种非线性结构,常用于描述树形结构的数据关系。图是一种复杂的非线性结构,常用于描述图形结构的数据关系。 三、算法分析和时间复杂度 ...

    南开大学复习资料-程序设计基础(下)1.docx

    本资源是南开大学程序设计基础课程的期末复习资料,涵盖了面向对象程序设计的基本概念、类和对象、构造函数、树型结构和图型结构等知识点。 一、面向对象程序设计的基本概念 面向对象程序设计是现代软件开发的主要...

    父子结点树的树枝串的形成方法

    假设有一个以父子结点形式存储在数据库表中的树状结构(如表1所示),其中包含id(结点编号)、pid(父结点编号)和name(结点名称)。目标是从这张表中直接生成每个结点的绝对路径,即从根结点到该结点的完整路径...

    计算机数据结构总结

    - **应用场景**:广泛应用于函数调用、表达式求值、队列管理等领域。 3. **树型结构** - **二叉树**:每个结点最多有两个子树的树型结构,分为二叉搜索树、平衡二叉树等多种类型。 - **二叉搜索树**:左子树上...

    数据结构实用教程(C语言版).ppt

    3. 树型结构类似生物中的家族树,每个元素(节点)有一个父节点和零个或多个子节点,例如在文件系统中,每个文件或目录都有一个父目录。 4. 图形结构或网状结构,其中任意元素之间都可能存在关系,可以形成多对多的...

    工学数据结构CPPT学习教案.pptx

    逻辑结构有四种基本类型:集合、线性结构(如数组和链表)、树型结构(如二叉树)和图状结构(如网络)。 2. 存储结构:数据在内存或外存中的实际表示,分为顺序存储(如数组)、链接存储(如链表)、索引存储(如B...

    数据结构试题A(04)1

    2. 树型结构:树是一种非线性的数据结构,其中元素(节点)间存在一对多的关系。节点通过边相连,一个节点可以有多个子节点,但只有一个父节点。选项C "一对多" 描述了这种关系。 3. 有向图的拓扑排序:在有向无环...

    数据结构(c#版

    - 案例中包含了不同数据结构的接口、结点类、数据结构类的C#代码,以及相关的排序和查找算法,这些代码未完全实现,为教师教学和学生实验提供了宝贵的资源。 7. **教材的教育价值与技术更新**: - 尽管本书基于C#...

    考研数据结构学习笔记.doc

    * 数据结构指的是逻辑结构和物理结构,逻辑结构是元素之间的逻辑关系,主要类型有集合型、线性结构、树型、图型等。 * 数据结构的学习体系是围绕着这些数据类型展开的,加上基于这些结构的基本操作插入、删除、查找...

    数据结构课后习题解答

    逻辑结构是指数据元素之间的逻辑关系,主要有集合、线性结构、树型、图型等。狭义上的数据结构专指逻辑结构。 二、数据结构的逻辑结构和物理结构 逻辑结构是指数据元素之间的逻辑关系,而物理结构是指计算机程序...

    数据结构 简单的目录管理系统

    - 设计并实现一个简单的目录管理系统,能够新建、删除、查询、修改目录名称、按顺序输出所有目录、以树型结构输出所有目录等功能。 - 采用树型结构进行设计。 #### 三、系统设计 1. **主页面设计** - 主菜单...

    用SQL实现线性表的非线性逻辑模型的查询.pdf

    详细解释了关系数据库基础、线性表与非线性逻辑结构、层次逻辑模型与树型结构、SQL在关系型数据库中的应用、递归查询的实现、关系数据库中层次逻辑结构数据的查询算法以及实际应用举例。这些内容对于理解和操作关系...

    数据结构笔记【高清文字版,C++】

    - **树形结构(树型结构)**:数据元素之间是一对多的关系,具有明显的层次性。 - **图结构(网状结构)**:数据元素之间是多对多的关系,构成了一个图。 - **集合**:数据元素之间没有特定关系,仅仅是集合的概念。...

    数据结构题目整理

    数据结构是计算机科学中的核心概念,它涉及到如何有效地组织和管理数据,以便高效地执行各种操作。本题涉及的知识点主要包括算法的评价标准、数据结构的逻辑和物理结构、算法的时间复杂度分析以及数据结构的操作。 ...

    数据结构课程设计题目及要求(2021.doc

    树型结构是一类非常重要的非线性数据结构,可以用二叉链表作为树的存储结构,链表中的两个链域分别指向该结点的第一个孩子结点和下一个兄弟结点。 3. 哈夫曼优化编码 哈夫曼优化编码是一种常用的数据压缩算法,...

Global site tag (gtag.js) - Google Analytics