`

SQL Server递归查询

阅读更多
Create   Table   products
(productsID   int,
productname   nvarchar(50),
ProductTypeID   int)

Create   Table   ProductType
(ProductTypeID   int,
Typeproductname   nvarchar(50),
ParentID   int,
Level   int,
ProductKey   int)

Insert   products   Select   1,   'A1 ',   '1 '
Union   All   Select   2,   'A2 ',   '2 '
Union   All   Select   3,   'A3 ',   '3 '
Union   All   Select   5,   'A5 ',   '3 '
Union   All   Select   6,   'B1 ',   '5 '
Union   All   Select   7,   'B2 ',   '6 '

Insert   ProductType   Select   1,   'A ',   0,   1,   1
Union   All   Select   2,   'A1 ',   1,   2,   1
Union   All   Select   3,   'A2 ',   2,   3,   1
Union   All   Select   5,   'B ',   0,   1,   2
Union   All   Select   6,   'B1 ',   5,   2,   2

Create   Function   F_GetChildren(@Typeproductname   nvarchar(50))
Returns   @Tree   Table   (ProductTypeID   Int)
As
Begin
Insert   @Tree   Select   ProductTypeID   From   ProductType   Where   Typeproductname   =   @Typeproductname
While   @@Rowcount   >   0
Insert   @Tree   Select   A.ProductTypeID   From   ProductType   A   Inner   Join   @Tree   B   On   A.ParentID   =   B.ProductTypeID   And   A.ProductTypeID   Not   In   (Select   ProductTypeID   From   @Tree)
Return
End

Select   *   From   products   Where   ProductTypeID   In   (Select   ProductTypeID   From   dbo.F_GetChildren( 'A '))
分享到:
评论

相关推荐

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

    在SQL Server 2008中实现递归查询来获取所有上级或下级数据是一项非常实用的技术,尤其是在处理具有层次结构的数据时。本篇将详细解释如何利用Common Table Expressions (CTE)来完成这样的查询,并对提供的示例代码...

    sqlserver中的递归

    sqlserver递归查询树结构的表的根结点子最里层的子结点

    SQL 递归查询,并将结果集保存在临时表中

    在SQL中,递归查询是一种强大的工具,常用于处理层级数据,例如组织结构、树形菜单等。在给定的场景中,我们需要根据一个特定的节点ID查询出该节点及其所有子节点,并将这些结果存储在一个临时表中。以下是实现这一...

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

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

    sql server实现递归查询的方法示例

    本文实例讲述了sql server实现递归查询的方法示例。分享给大家供大家参考,具体如下: 有时候面对树结构的数据时需要进行递归查询,网上找了一番,参考了各位大神的文章,发现蛮简单的,当做个小笔记方便以后使用 sql ...

    sql递归查询实例2

    根据提供的信息,我们可以深入探讨如何使用SQL递归查询来获取所有属于特定`upperid`的数据及其子树。这里的关键在于理解递归查询的工作原理,并通过一个具体的例子来演示这一过程。 ### SQL递归查询概念 在关系型...

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

    在SQL Server中,递归查询是一种强大的工具,用于处理层级数据或树状结构的数据,例如组织结构、部门关系等。本文将深入探讨如何利用递归查询来获取子节点和父节点的信息。 一、查询当前部门下的所有子部门 在SQL ...

    SQLserver2008使用表达式递归查询

    在SQL Server 2008中,表达式递归查询是一种强大的工具,尤其适用于处理具有层级关系的数据,如组织结构、目录树或者分类系统。这种技术主要依赖于公用表表达式(Common Table Expression, CTE),它允许在单个查询...

    SqlServer实现递归查询

    例如,现在需要查询出西湖区以及西湖区所属的市和省,这时候就需要用到SQL递归查询。我在这里构造了一张数据表[tb_Test],其数据如下所示: Id Name ParentId 1 浙江省 NULL 2 杭州市 1 3 湖州市 1 4 滨江区 2 ...

    SQL Server CTE 递归查询全解1

    SQL Server中的递归查询主要通过CTE(公共表表达式)来实现,它是一种非常强大的工具,特别适用于处理层次结构数据。CTE是T-SQL脚本中的临时结果集,可以用于复杂的查询,尤其是需要递归操作的情况。本文将深入探讨...

    sqlserver中存储过程的递归调用示例

    递归式指代码片段调用自身的情况;危险之处在于:如果调用了自身一次,那么如何防止他反复地调用自身。也就是说提供递归检验来保证适当的时候可以跳出。 以阶层为例子说存储过程中递归的调用。 递归 CREATE PROC ...

    sqlserver 2005 使用CTE 实现递归

    - 定位成员是一个非递归查询,用于提供递归过程的起始点。 - 例如,在查找组织结构时,定位成员可以是某个特定员工的信息。 2. **递归成员(RM)**: - 递归成员是递归查询的部分,它依赖于先前的查询结果,并...

    sql将多行数据生成一个一个字符患的递归脚本

    将多行数据生成一个一个字符患的递归脚本,方便,快捷。要顶哦。

    SQL SERVER 列表菜单递归处理方式以及大小节点排序

    当初花了很长时间查资料、逛博客 终于搞定的排序 以及对于处理菜单列表显示的 问题。希望对你们有帮助。压缩包包含数据表创建脚本 以及 实现功能的语句 表结构字段 id、name、url、pid、indexs

    sqlserver实现树形结构递归查询(无限极分类)的方法

    在SQL Server中,实现树形结构递归查询是数据库管理中的常见需求,特别是在处理具有层级关系的数据时,如无限级分类。SQL Server 2005及以后版本引入了公用表表达式(CTE,Common Table Expression)来支持递归查询...

    查找sqlserver查询死锁源头的方法 sqlserver死锁监控

    以下是一些关于SQL Server死锁监控及查询死锁源头的方法。 首先,我们可以使用内置的系统存储过程`sys.dm_tran_locks`来检查当前的锁定状态,这个视图提供了关于系统中所有锁定的详细信息。但是,要确定具体的死锁...

    使用SqlServer CTE递归查询处理树、图和层次结构

    CTE(Common Table Expressions)是从SQL Server 2005以后版本...一般我们在处理树,图和层次结构的问题时需要用到递归查询。 CTE的语法如下 WITH CTE AS ( SELECT EmpId, ReportTo, FName FROM Employ WHERE Emp

Global site tag (gtag.js) - Google Analytics