【【Sql Server】SQL SERVER 递归查询】教程文章相关的互联网学习教程文章

sql server使用cte递归查询获取树形的父节点/子节点【代码】

id pid name001 顶级/一级节点001001 001 二级节点001001001 001001 三级节点通过子节点递归查询父节点:with subqry(id, pid, name) as (select cb.id,cb.pid,cb.name from cbwhere cb.id = ‘001001001‘union allselect cb.id,cb.pid,cb.name     from cb, subqrywhere cb.id = subqry.pid ) select distinct * from subqry这样,就能查询出id为001001001的子节点及其上所有父节点。 通过父节点递归查询子节点:wi...

递归查询 sqlserver【图】

temp (OID,NAME,PARENT_OID) AS ( SELECT D.OID,D.NAME,D.PARENT_OID FROM T_SYS_DISTRICT D WHERE D.IS_DELETE = ‘N‘ AND OID = ‘2‘ UNION ALL SELECT S.OID,S.NAME,S.PARENT_OID FROM T_SYS_DISTRICT S,temp T WHERE S.IS_DELETE = ‘N‘ AND S.PARENT_OID = T.OID ) SELECT OID,NAME,PARENT_OID FROM temp; 3.语句解析不懂 4.结果 递归查询 sqlserver标签:union mic delete let 递归查询 name sel lazy n...

SQLServer2005中的CTE递归查询得到一棵树【图】

最近研究了一下CTE递归查询,感觉这个CTE递归查询蛮好用的,在网上找到了一个比较好的例子,测试例子如下 1 use City; 2 go 3 create table Tree 4 ( 5 ID int identity ( 1 , 1 ) primary key not null , 6 Name varchar ( 20 ) not null , 7 Parent varcha  最近研究了一下CTE递归查询,感觉这个CTE递归查询蛮好用的,在网上找到了一个比较好的例子,测试例子如下1 use City;2 go3 create table Tree4 (5 ID int identity(1,...

SQLSERVER2005中树形数据的递归查询

在园子里看到一个文章,涉及到树形数据的递归查询,觉得有更好的方法,就随手写一个,以备用之问题描述。借用了adinet的问题。参见: 今天做项目遇到一个问题, 有产品分类A,B,C顶级分类, 期中A下面有a1,a2,a3子分类. 但是a1可能共同属于A和B,然后我的数据库是这样设计的 如果想要查询A的所有子类的话就要查询parent中包含1的,所以就萌生了这个办法.呵呵,解决方案 代码如下:with cte as (select * from tb where id=1 union all se...

使用SQLSERVER2005/2008递归CTE查询树型结构的方法

我们经常遇到树型结构,把它们显示在一个类似TreeView控件上的情况。这时我们可以使用Recursive Common Table Expressions(CTE)实现下面是一个简单的Family Tree 示例: 代码如下:DECLARE @TT TABLE (ID int,Relation varchar(25),Name varchar(25),ParentID int) INSERT @TT SELECT 1, Great GrandFather , Thomas Bishop, null UNION ALL SELECT 2,Grand Mom, Elian Thomas Wilson , 1 UNION ALL SELECT 3, Dad, James Wilson,2...

SQLserver2008使用表达式递归查询

SQLserver2008使用表达式递归查询语句,需要的朋友可以参考下。代码如下:--由父项递归下级 with cte(id,parentid,text) as (--父项 select id,parentid,text from treeview where parentid = 450 union all --递归结果集中的下级 select t.id,t.parentid,t.text from treeview as t inner join cte as c on t.parentid = c.id ) select id,parentid,text from cte --------------------- --由子级递归父项 with cte(id,parentid,te...

MSSQL中递归SQL查询语句实例说明-

MSSQL中递归SQL查询语句分享,需要的朋友可以参考下。一张表(ColumnTable)的结构如下图所示当前需要实现的功能:通过Number的值为67来获取当前的节点ID、父节点ID 递归实现SQL语句: 代码如下:with znieyu as ( select c.Id,c.FatherId,0 as lv1 from ColumnTable c where c.Number=67 union all select c.Id,c.FatherId,lv1-1 from znieyu z inner join ColumnTable c on z.FatherId=c.Id ) select znieyu.Id ,znieyu.FatherId,...

sqlserver另类非递归的无限级分类(存储过程版)

网络上很多无限级的分类,但无非是两种,一种是递归算法,一种是非递归算法。。下面是我统计的几种方案: 第一种方案(递归式): 简单的表结构为: CategoryID int(4), CategoryName nvarchar(50), ParentID int(4), Depth int(4) 这样根据ParentID一级级的运用递归找他的上级目录。 还有可以为了方便添加CategoryLeft,CategoryRight保存他的上级目录或下级目录 第二种方案: 设置一个varchar类型的CategoryPath字段来保存目录的完整...

SQLServer进行递归查询实现方法

本文章收藏了二种关于SQL Server进行递归查询实现,有需要的朋友可参考一下。以表Deparment为例 表结构为: Id 部门内码, DeptCode 部门编码, ParentDeptId 上级部门内码 使用T-SQL:代码如下 with Dep as ( select Id,DeptCode,DeptName from Department where Id=1 union all select d.Id,d.DeptCode,d.DeptName from Dep inner join Department d on dep.Id = d.ParentDeptId )select * from Dep 简单解释一下:with as属于...

mssqlserver递归查询的sql语句【图】

下面介绍一下关于mssql server中使用递归的sql查询语哦,有需要的朋友可以参考一下。张表(ColumnTable)的结构如下图所示当前需要实现的功能:通过Number的值为67来获取当前的节点ID、父节点ID 递归实现SQL语句:代码如下with znieyu as( c.Id,c.FatherId,0 as lv1 from ColumnTable c where c.Number=67union allselect c.Id,c.FatherId,lv1-1 from znieyu zinner join ColumnTable c on z.FatherId=c.Id)select znieyu.Id ,znie...

SQLSERVER中CTE语句结构及CTE递归查询

SQL SERVER中CTE语句结构及CTE递归查询 CTE语句结构 公用表表达式 (CTE) 可以认为是在单个 SELECT、INSERT、UPDATE、DELETE 或 CREATE VIEW 语句的执行范围内定义的临时结果集。CTE 与派生表类似,具体表现在不存储为对象,并且只在查询期间有效。与派生表的   SQL SERVER中CTE语句结构及CTE递归查询CTE语句结构公用表表达式 (CTE) 可以认为是在单个 SELECT、INSERT、UPDATE、DELETE 或 CREATE VIEW 语句的执行范围内定义的临时...

SQLSERVER2005递归查询【图】

项目中有用户组表UserGroup如下: 其中PID表示当前组的上级组 表数据如下: 现在想查询出顶级组[没有上级组叫顶级组]A1组的所有子孙组ID,SQL如下: --查询子节点with RTD1 as(select id ,pid from UserGroup),RTD2 as(select * from RTD1 where id=6union al项目中有用户组表UserGroup如下:其中PID表示当前组的上级组 表数据如下:现在想查询出顶级组[没有上级组叫顶级组]A1组的所有子孙组ID,SQL如下: --查询子节点 with RTD1 as...

SqlServer中的递归查询

use test set nocount on if object_id ( Dept , U ) is not null drop table Dept go create table Dept(ID int ,ParentID int ,Name varchar ( 20 )) insert into Dept select 1 , 0 , AA insert into Dept select 2 , 1 , BB insert intouse testset nocount onif object_id(Dept,U) isnotnulldrop table Deptgocreate table Dept(ID int,ParentID int,Name varchar(20)) insert into Dept select 1,0,AA insert into D...

sqlserver使用公用表表达式CTE通过递归方式编写通用函数自动生成连续数字和日期【图】

问题:在数据库脚本开发中,有时需要生成一堆连续数字或者日期,例如yearly report就需要连续数字做年份,例如daily report就需要生成一定时间范围内的每一天日期。而自带的系统表master..spt_values存在一定的局限性,只是从0到2047(验证脚本:select * from master..spt_values b where b.type = 'P'),也不能直接生成连续日期。可能大部分人会想到一个笨办法,通过while循环去逐条插入数据到临时表,每次数字加1或者日期加1天...

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

SQL Server 2005开始,我们可以直接通过CTE来支持递归查询,CTE即公用表表达式 百度百科 公用表表达式(CTE),是一个在查询中定义的临时命名结果集将在from子句中使用它。每个CTE仅被定义一次(但在其作用域内可以被引用任意次),并且在该查询生存期间将一直生存。可以使用CTE来执行递归操作。创建的语法是:with <name of you cte>(<column names>) as( <actual query> ) select * from <name of your cte>1、生成数据--菜单目录...