根据传入参数查找指定项的子项的递归用法
样表:
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"中,可能包含了上述逻辑的具体实现,你可以打开文件查看详细代码,进一步理解如何在实践中应用这些理论知识。通过学习和实践这些递归查询技巧,你将能够更有效地...
-- 用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 ,...
本文实例讲述了sql server实现递归查询的方法示例。分享给大家供大家参考,具体如下: 有时候面对树结构的数据时需要进行递归查询,网上找了一番,参考了各位大神的文章,发现蛮简单的,当做个小笔记方便以后使用 sql ...
例如,现在需要查询出西湖区以及西湖区所属的市和省,这时候就需要用到SQL递归查询。我在这里构造了一张数据表[tb_Test],其数据如下所示: Id Name ParentId 1 浙江省 NULL 2 杭州市 1 3 湖州市 1 4 滨江区 2 ...
- **递归查询的语法扩充**:文章详细介绍了如何在SQL的现有语法基础上增加递归查询的语法结构,并提出了相应的解析和执行算法。 - **逻辑谓词的理论与算法**:对于逻辑谓词的扩充,文章探讨了相关的理论基础,给出...
在IT领域,算法是解决问题的...实际学习中,还需要深入理解每种算法的实现细节、时间复杂度和空间复杂度,以及它们在不同场景下的适用性。熟练掌握这些算法和数据结构,对于提升编程能力和解决实际问题的能力至关重要。
在本文中,我们将探讨T-SQL中的递归,并介绍一个使用递归算法来解决问题的示例。我们将讨论递归的定义、优缺点、应用场景以及一些需要注意的重要问题。 递归的定义 递归是一种编程技巧,指一个存储过程或函数调用...
在MySQL数据库中,通常我们不直接使用SQL来执行排序算法如冒泡排序,因为SQL是设计用来查询和操作数据的,而不是执行通用的计算或算法任务。然而,为了教学目的,我们可以尝试模拟冒泡排序的过程,但请注意这种方法...
二叉树的递归算法:建立二叉树、遍历二叉树
递归是一种算法,它通过调用自身来解决问题。在查询数据库时,递归查询意味着我们查询一个记录,然后根据该记录的某些属性再查询其关联的记录,这个过程可能反复进行,直到满足某个终止条件。 在Hibernate中,我们...
1. **递归**:理解并运用递归算法来处理具有层级关系的数据。 2. **树形数据结构**:学习如何在数据库中存储和管理树形结构,并在前端展示。 3. **数据库设计**:创建适当的表结构来存储菜单数据,如`menus`表,包含...
### Oracle中的Connect By Prior递归算法详解 #### 一、Connect By Prior 子句概述 在Oracle数据库中,`Connect By Prior`子句是一种非常有用的工具,尤其在处理具有层次结构的数据时。它允许用户以一种简洁的方式...
在IT行业中,BOM(Bill of Materials)是用于描述产品组件和层次结构的文档,它在制造业、工程设计和项目管理等领域...它结合了数据库连接、递归算法、数据处理和Excel的自定义功能,提供了一种强大的自动化解决方案。
"excel 递归导出 sql语句"的主题涉及如何利用递归算法来解决此类问题,目的是将具有层级关系的数据从Excel表格中导出并转化为SQL插入语句,以便轻松地将数据导入数据库。 首先,我们要理解什么是递归。递归是一种...
通常,实现无限级分类有两种主要方法:递归算法和非递归算法。本篇讨论的是非递归算法的一种特殊实现,通过存储过程来完成。 首先,我们来看传统的递归算法,它基于树形结构,通过递归查询逐级获取上级分类。这种...