【SQL-递归查询在Ora与Mssql】教程文章相关的互联网学习教程文章

mssql 递归【图】

--递归id往下所有内容with temp ( URE_ID, URE_PARENT_ID,URE_NAME ,URE_TYPE)as(select URE_ID, URE_PARENT_ID,URE_NAME ,URE_TYPEfrom ASM_USER_REGIONwhere URE_PARENT_ID= 23union allselect a.URE_ID, a.URE_PARENT_ID,a.URE_NAME ,a.URE_TYPEfrom ASM_USER_REGION ainner join temp on a.URE_PARENT_ID = temp.URE_ID)select * from temp --递归id往上所有内容with temp ( URE_ID, URE_PARENT_ID,URE_NAME ,URE_TYPE)as(sel...

在sql server中利用with as实现递归功能

在sqlserver2005之前,要实现递归功能比较麻烦,比如可能会要用到临时表与while语句来循环。自sqlserver2005之后,新增了with as功能语法,即 公用表达式(CTE),让递归实现起来变的简单了。本章我们主要演示如何利用with as功能实现一个简单的递归功能。在这之前先看一下cte的语法:[ WITH <common_table_expression > [ ,...n ] ]<common_table_expression >::= expression_name [ ( column_name [ ,...n ] ) ] AS ...

SQLServer 递归查询

--SQLServer 递归查询,主要用于建立树形结构IF OBJECT_ID('Categories') IS NOT NULLDROP TABLE Categories GOCREATE TABLE Categories (CategoryID INT, CategoryName VARCHAR(20),ParentID INT ) GOINSERT INTO Categories(CategoryID, CategoryName, ParentID)SELECT 1, 'Books', NULL UNION ALLSELECT 2, 'SQL Server', 1 UNION ALLSELECT 3, 'ASP.NET', 1 UNION ALLSELECT 4, 'General', 2 UNION ALLSELECT 5, 'SSIS', 2 UNI...

SQLServer 递归查询【代码】

--SQLServer 递归查询,主要用于建立树形结构IF OBJECT_ID(Categories) IS NOT NULLDROP TABLE Categories GOCREATE TABLE Categories (CategoryID INT, CategoryName VARCHAR(20),ParentID INT ) GOINSERT INTO Categories(CategoryID, CategoryName, ParentID)SELECT 1, Books, NULL UNION ALLSELECT 2, SQL Server, 1 UNION ALLSELECT 3, ASP.NET, 1 UNION ALLSELECT 4, General, 2 UNION ALLSELECT 5, SSIS, 2 UNION ALLSELECT...

sqlserver with as 双向递归【代码】【图】

递归上下级部门,获取相关的部门单位部门表: sql语句:with Temp1 as ( select GroupID,G_ParentID from sys_Group where GroupID={当前部门GroupID} union all select sys_Group.GroupID,sys_Group.G_ParentID from Temp1 inner join sys_Group on Temp1.G_ParentID=sys_Group.GroupID ), Temp2 as( select GroupID,G_ParentID from sys_Group where GroupID={当前部门GroupID} union all select sys_Group.GroupID,sys_Group...

SQL Server使用递归查询数据

SQL Server使用递归查询数据标签:本文系统来源:http://www.cnblogs.com/yourchoose/p/4531221.html

SqlServer CTE 递归查询 Oracle递归查询

http://msdn.microsoft.com/zh-cn/library/ms186243(v=SQL.90).aspx。 MsSql的语法如下:WITH cte_name ( column_name [,...n] ) AS ( CTE_query_definition &ndash;- Anchor member is defined. UNION ALL CTE_query_definition &ndash;- Recursive member is defined referencing cte_name. ) -- Statement using the CTE SELECT * FROM cte_name 递归执行的语义如下:将 CTE 表达式拆分为定位点成员和递归成员。 运行定位点...

SqlServer_合并多个递归查询数据(CTE)

--cteParents 父亲信息 with cteChildren(EmpID,ParentID) AS ( select EmpID,ParentID from Persons where parentid = 10171 union all select t.EmpID,t.parentid from Persons as t inner join cteChildren as c on t.ParentID = c.Id ), cteParents(EmpID,ParentID) AS ( select EmpID,ParentID from Persons where Id= 10172 union all select t.EmpID,t.parentid from Persons as t inner join cteParents as c ...

使用cursor递归遍历sqlserver的相应表

rc GODECLARE @nnn varchar(100)DECLARE cur1 cursor for select [name] from sys.tables where name LIKE ‘index_%‘drop table #Tmp --删除临时表#Tmp create table #Tmp --创建临时表#Tmp (kkk uniqueidentifier );INSERT #Tmp VALUES(‘595C4D7D-B9E9-4E29-85F5-05C414CA961E‘) INSERT #Tmp VALUES(‘92DFF3AF-7B65-43EF-AA64-069AF84896AA‘) INSERT #Tmp VALUES(‘A3638B49-4CF0-4046-8349-0AB12560CDE6‘) INSERT #Tmp...

sqlserver向上递归统计【代码】

select a.kmcode,a.kmname,a.pidkm xx sys_km a where kmcode in ( select t1.yskm from view_dj t1 where t1.swdjh=@bm)union all select k.kmcode,k.kmname,k.pidkm xx sys_km k inner join cte c on c.pidkm = k.kmcode ) 3.在通过cte和金额表关联把数据插入到临时表中代码如下 insert into #tmphjcx select * from ( select distinct a.kmcode,a.kmname,a.pidkm, b.hjje,b.guoshui,b.dishui from cte aleft j...

SqlServer 三级联动、递归表

SqlServer 省市县三级联动 三张表递归合并成一张表sql如下: insert into table2(area_name,area_parent_id)select province,‘0‘ from provincesinsert into table2(area_name,area_parent_id)select city,c.id from cities ainner join provinces b on a.provinceid=b.provinceidinner join table2 c on b.province=c.area_nameinsert into table2(area_name,area_parent_id)select a.area,c.id from areas ainner join ...

Sql Server递归查询(转)

drop table tb; create table tb(id varchar(3) , pid varchar(3) , name varchar(10)); insert into tb values(‘001‘ , null , ‘广东省‘); insert into tb values(‘002‘ , ‘001‘ , ‘广州市‘); insert into tb values(‘003‘ , ‘001‘ , ‘深圳市‘) ; insert into tb values(‘004‘ , ‘002‘ , ‘天河区‘) ; insert into tb values(‘005‘ , ‘003‘ , ‘罗湖区‘); insert into tb values(...

Sql Server CTE递归【图】

WITH cte AS ( SELECT a.FNUMBER,a.FMATERIALID AS MainId,b.FMATERIALID AS ChileID,CAST(b.FMATERIALID AS VARCHAR(max)) AS lev FROM t_eng_bom a JOIN dbo.T_ENG_BOMCHILD b ON a.fid =b.FID WHERE a.fid = ‘100150‘ UNION ALL SELECT d.FNUMBER,d.MainId,d.ChileID,CAST(lev AS VARCHAR(max))+ CAST(d.ChileID AS VARCHAR(max)) AS lev FROM cte c JOIN ( SELECT aa.FNUMBER,aa.FMATERIALID AS MainId,bbb.FMATERIALID ...

SQL Server 树形表非循环递归查询【图】

很多人可能想要查询整个树形表关联的内容都会通过循环递归来查...事实上在微软在SQL2005或以上版本就能用别的语法进行查询,下面是示例。 --通过子节点查询父节点WITH TREE AS( SELECT * FROM Areas WHERE id = 6 -- 要查询的子 id UNION ALL SELECT Areas.* FROM Areas, TREE WHERE TREE.PId = Areas.Id ) SELECT Area FROM TREE --通过父节点查询子节点WITH TREE AS( SELECT * FROM Areas ...

SQL Server中公用表表达式(CTE)递归的生成帮助数据【代码】【图】

GenerateHelpData as (select 0 as idunion allselect id+1 from GenerateHelpData where id<2047 ) select id from GenerateHelpData option (maxrecursion 2047);可以直接让CTE参数逻辑运算,也可以生成临时表,达到多次重用的目的,这样感觉是不是也很清爽? 1,生成连续数字(当然数字的起始值,间隔值都可以自定义)--生成连续数字 ;with GenerateHelpData as (select 0 as idunion allselect id+1 from GenerateHelpData w...