根据传入参数查找指定项的子项的递归用法
样表:
child,parent
1 0
2 0
3 1
4 2
要
实现这种用法一般都通过两种方式来实现:
procedure 方式:
create procedure usp_getallchild(@child int)
as
declare @t table(child int null,parent int null,level int null)
declare @level int
set @level=0
insert into @t(t.child,t.parent,level) select [table].child,[table].parent,@level from [table] where [table].child=@child
while @@rowcount>0
begin
set @level=@level+1
insert into @t(t.child,t.parent,level) select [table].child,[table].parent,@level from [table] join @t as t on t.child=[table].parent where t.level=@level-1
end
select * from @t
function 方式
create function udf_getallchild(@child int)
returns @t_return table(child int null,parent int null,level int null)
as
begin
declare @level int
set @level=0
insert into @t_return(child,parent,level) select child,parent,@level from table where child=@child
while @@rowcount>0
begin
set @level=@level+1
insert into @t(child,parent,level) select child,parent,@level from table jion @t_return as t on t.child=table.parent where t.level=@level-1
end
return @t_return
end
sql server table类型的变量使用注意事项
在sql sever 中,table类型的变量的使用可以给我们带来很多方便之处,但是方便的东西往往是存在一些不足的 ,
table 类型的变量在作为 表使用时,在进行关联操作时,必须给表变量起一个别名,不然SQL SERVER 会豪不客气的告诉你,你没有申明该表变量。其它使用可以很实体表一样使用。
分享到:
相关推荐
sql递归算法并可以自定义停止到具体的层数,适用于获取会员及会员推荐的会员的下级的总人数等
-- 用SQL Server显示树结构, 不用递归算法,不用游标,没有层次限制, 速度很快 -- 显示、打印用起来很方便的 -- select * from Dept -- select * from dbo.GetDeptTree('00000000-0000-0000-0000-000000000000') ...
-- 用SQL Server取得树节点路径, 不用递归算法,不用游标,没有层次限制, 速度很快 -- 显示、打印用起来很方便的 -- print dbo.GetDeptPath('5cb3c3ee-4b2b-4005-8037-bb3876663d2e','->') -- select * from Dept
JAVA_SQL递归树形,用递归算法结合数据库对J2EE实现树结构
在SQL Server中,我们可以利用表表达式来实现递归算法,一般用于阻止机构的加载及相关性处理。 –>实现: 假设OrganiseUnit(组织机构表)中主要的三个字段为OrganiseUnitID(组织机构主键ID)、...
create function f_id(@parentid nvarchar(10)) returns @re table(orderid int,parentid int,title nvarchar(20),level int) as begin declare @l int set @l=0 insert @re select orderid, parentid ,...
算法ppt 回溯 动态递归 分支限界 图 贪婪法 链表操作等等
二叉树的递归算法:建立二叉树、遍历二叉树
MYSQL无限分类算法技术文档——MYSQL中分层数据的管理,不解MYSQL高级数据管理的相关技巧,包括了一些必要的SQL语句和高级数据管理的讲解,像邻接表模型、检索整树、检索所有叶子节点、检索单一路径、邻接表模型的...
(冒泡)递归算法.txt 八皇后算法.txt 约瑟夫生者死者算法.txt api键盘热键组合键.txt C#递归方法把数据表加载到treeview控件(CS和BS).txt SQL绑定与SOCKEt.txt 利用三层架构完成试题随机生成.txt
第一种方案: 使用递归算法,也是使用频率最多的,大部分开源程序也是这么处理,不过一般都只用到四级分类。这种算法的数据库结构设计最为简单。category表中一个字段id,一个字段fid(父id)。这样可以根据WHERE id =...
大家通常都是使用递归实现无限极分类都知道递归效率很低,下面介绍一种改进的前序遍历树算法,不适用递归实现无限极分类,在大数据量实现树状层级结构的时候效率更高。 sql代码如下: CREATE TABLE IF NOT EXISTS `...
主要内容包括SQL的基础理论、查询优化、查询算法及复杂度,以及在使用子查询、表表达式、排名函数、数据聚合和透视转换、TOP和APPLY、数据修改、分区表、特殊数据结构等实际应用时会遇到的各种高级查询问题和解决...
网络上很多无限级的分类,但无非是两种,一种是递归算法,一种是非递归算法。。
主要内容包括SQL的基础理论、查询优化、查询算法及复杂度,以及在使用子查询、表表达式、排名函数、数据聚合和透视转换、TOP和APPLY、数据修改、分区表、特殊数据结构等实际应用时会遇到的各种高级查询问题和解决...
主要内容包括SQL的基础理论、查询优化、查询算法及复杂度,以及在使用子查询、表表达式、排名函数、数据聚合和透视转换、TOP和APPLY、数据修改、分区表、特殊数据结构等实际应用时会遇到的各种高级查询问题和解决...
ztree 后台树java代码组装 数据库建表sql jdbc连接,树节点数据保存方法,生成树方法采用递归算法实现。
--------------初级---------------------- 01.初识PowerBuilder 02.PowerBuilder开发环境 03.PowerBuilder编程概述 04.连接数据库+sql语言 05.了解编程环境Script画板 ...22.完善递归算法+ListBox控件 23
在不引入MPTT模型的前提下,必须通过递归算法来查询某个节点和下级子节点。 Oracle提供的connect by扩展语法,简单好用。但是其他的RDBMS就没这么人性化了(或者我不知道)。最近在项目中使用PostgreSQL来查询树形...