`
xcc258
  • 浏览: 73767 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

Sql Server 查找所有子节点

阅读更多

表名:collage_orgGroups

字段:主键:ID,父节点ID:parentID

 

函数:传入个ID,查找此ID下所有字节点ID

 

Create   Function   F_GetChildren(@Pid   int) 
Returns   @Tree   Table   (ID   Int) 
As 
Begin 
Insert   @Tree   Select   ID   From   collage_orgGroups   Where   parentID   =   @Pid  
While   @@Rowcount   >   0 
Insert   @Tree   Select   A.ID   From   collage_orgGroups   A   Inner   Join   @Tree   B   On   A.ParentID   =   B.ID   And   A.ID   Not   In   (Select   ID   From   @Tree) 
Return 
End 


select * from collage_orgGroups where ID IN(SELECT ID FROM dbo.F_GetChildren(2)) 

 

 

另外一种方式:

 

with myT as(
select ID ,parentID from collage_orgGroups
),
myT2 as(
select * from myT where parentID in(2,3)
union all
select myT.* from myT2 inner join myT
 on myT2.ID=myT.parentID
)
select ID,parentID from myT2

 

这个直接执行就行了。。就是不知道用JDBC可能得到结果集。

分享到:
评论

相关推荐

    SQL sever 中递归查找子节点和父节点

    SQL Server 中递归查找子节点和父节点 在关系数据库管理系统中,特别是在 SQL Server 中,递归查找子节点和父节点是一种常见的操作。这种操作可以应用于树形结构的数据存储和查询中,例如组织结构、目录结构、分类...

    sql server递归子节点、父节点sql查询表结构的实例

    本文将深入探讨如何利用递归查询来获取子节点和父节点的信息。 一、查询当前部门下的所有子部门 在SQL Server中,可以使用Common Table Expression(CTE)结合递归来实现这个功能。`deptTab`是存储部门信息的表,...

    sql server 2008 递归查询所有上级或下级数据

    -- 递归部分:找出所有子节点及其子节点 select t.deptid, t.parentid from jaf_dept_structure as t inner join cte as c on t.parentid = c.deptid ) ``` ##### 解析: - **基础情况**:首先,我们定义了基础...

    SQL SERVER 2000数据库教案

    - **网状模型**:数据以网络结构存储,允许任何节点有多个父节点和子节点。 - **关系模型**:这是最常见的模型,基于二维表,每个表代表一种实体,行表示记录,列表示属性。 3. **Client/Server(C/S)体系结构**...

    根据当前节点获取所有父节点信息

    根据当前节点获取所有父节点信息(18代)SQL根据当前节点递归遍历获取所有父节点信息,短短的SQL可以解决复杂的问题

    SQL SERVER 2000开发与管理应用实例

    8.2.3 查找子节点 244 8.2.4 查找父节点 245 8.2.5 编码校验 246 8.2.6 节点复制 249 8.2.7 节点删除 251 8.2.8 逐级汇总 253 8.3 树形数据的扩展形式 256 8.3.1 产品配件清单 256 8.3.2 ...

    sql查询某个parentid下的所有childid

    在数据库管理和应用开发中,经常需要查询某一特定节点下的所有子节点信息。例如,在组织结构、产品分类等层级数据管理中,我们需要获取某个父级分类的所有子分类,包括直接子分类以及其所有的后代分类。本篇文章将...

    Sqlserver2000经典脚本

    │ 8.2.2 树形数据深度排序处理示例(模拟单编号法).sql │ │ 8.2.2 树形数据深度排序处理示例(递归法).sql │ │ 8.2.3 查找指定节点的所有子节点的示例函数.sql │ │ 8.2.4 查找指定节点的所有父...

    SQL Server CTE 递归查询全解1

    这个查询首先将ManagerID为-1的用户(根节点)放入CTE,然后递归地查找每个用户的上级,直到所有用户及其直接上级都被找出。 在实际应用中,必须谨慎处理递归查询,因为无限递归可能导致性能问题和错误。如果层次...

    sql_函数实现三种父子递归

    总之,SQL递归函数是处理层次结构数据的强大工具,通过正向递归查找子节点、反向递归查找父节点以及构建面包屑导航路径,可以灵活地处理各种树形结构的问题。掌握这些技术能够帮助我们在数据库设计和查询中更加高效...

    SQL SERVER 无级机构树实例

    3. **递归查询**:使用`WHILE`循环,递归地查找每一层级的所有子节点,直到没有更多子节点为止。每次循环时,层级`@level`加一,然后从`BA_COMPANY`表中选取对应父节点的子节点,并将它们的信息(包括节点ID、当前...

    SQL Server解析XML数据的方法详解

    例如,`C.exist('(.[@Name="Email"])[1]') = 1` 检查当前节点是否存在带有特定属性的子节点。 这些方法可以根据需要的灵活性和效率选择合适的一种。 接下来,我们看如何读取XML变量中的属性。在示例7中,我们使用 ...

    SQL_Server执行计划

    2. **执行树**:执行计划以树状结构呈现,根节点通常是表或视图,子节点则表示对数据的操作。 3. **估计成本**:每个操作符都附带有一个成本估计值,用于表示该操作的相对代价。 4. **I/O统计**:显示读取数据所需的...

    MS SQL Server树形结构表遍历的循环算法.pdf

    在MS SQL Server中,需要编写特定的SQL语句来模拟递归查询的过程,即通过循环在表中逐层查找子节点,直到遍历完所有的节点。 文章的引言部分强调了实现树形结构表遍历查询操作的重要意义,以及在MS SQL Server中...

    SQL Server 树形表非循环递归查询的实例详解

    这次,我们将条件反转,使CTE查找所有Id等于已知父节点Id的子节点。 ```sql WITH TREE AS( SELECT * FROM Areas WHERE id = 7 UNION ALL SELECT Areas.* FROM Areas, TREE WHERE TREE.Id = Areas.PId) SELECT...

    SQLServer2000(邹键)

    树型结构通常以父节点和子节点的形式呈现,其中每个节点可以有零个或多个子节点。在数据库设计中,我们可以使用自连接来模拟树结构,通过一个字段(如`parent_id`)来表示一个记录(节点)的父记录(节点)。例如,...

    大数据背景下基于B-树结构的SQL Server数据优化策略研究.pdf

    每个节点包含一个键值序列,这些键值将子节点分隔开,形成了一个有序的键值范围。查询时,系统通过比较键值找到对应的子节点,直到找到目标数据或确定数据不存在。 针对大数据场景,SQL Server提供了多种类型的索引...

    sqlserver2000基础(高手也有用)

    8.2.3 查找子节点 244 8.2.4 查找父节点 245 8.2.5 编码校验 246 8.2.6 节点复制 249 8.2.7 节点删除 251 8.2.8 逐级汇总 253 8.3 树形数据的扩展形式 256 8.3.1 产品配件清单 256 8.3.2 公交车...

    经典SQL脚本大全

    │ │ 8.2.3 查找指定节点的所有子节点的示例函数.sql │ │ 8.2.4 查找指定节点的所有父节点的示例函数.sql │ │ 8.2.5 校验插入指定结点是否导致编码循环的示例函数.sql │ │ 8.2.5 校验表中数据是否有循环编码...

    三种实现方法实现数据表中遍历寻找子节点

     Id ParentId 1 0 2 1 3 2 …… 针对该表结构解释如下: 1的父节点为0, 2的父节点为1, 3的父节点为2 …… 以此类推,要求给定一个父节点的值,比如1, 用SQL语句查询的到该父结点下的所有子节点 ...

Global site tag (gtag.js) - Google Analytics