sql 2种递归

alter FUNCTION f_Cid(@ID int)
RETURNS @t_Level TABLE(ID int,Level int)
AS
BEGIN
 DECLARE @Level int
 SET @Level=1
 INSERT @t_Level SELECT @ID,@Level
 WHILE @@ROWCOUNT>0
 BEGIN
  SET @[email protected]+1
  INSERT @t_Level SELECT a.[MenuId],@Level
  FROM [MMS_Menu] a,@t_Level b
  WHERE a.[MenuParentId]=b.ID
   AND [email protected]
 END
 RETURN
END
GO
select * from f_Cid(101) b,[MMS_Menu] a where a.MenuId=b.ID

with cte as

(

select a.ID,a.date,a.name,a.pID from dbo.testb a where [email protected]

union all

select k.ID,k.date,k.name,k.pID  from dbo.testb k inner join cte c on c.ID = k.pID

)
 select * from cte ;

sql 2种递归,布布扣,bubuko.com

时间: 2024-10-18 23:18:56

sql 2种递归的相关文章

std::sort 学习:一种递归分治方法

// std::sort 学习:一种递归分治方法 今天看了看 stl 的 std::sort 的代码,众所周知,这个函数是在快速排序递归太深的时候使用堆排序防止过度退化,但是今天说的不是这个.我们只看快速排序的部分. 我们一般实现快速排序大概是这样的(本王随意写了个用下标当参数的排序函数,领会意思即可). void quick_sort(int first, int last) // 某个数组的 [first, last) {  if ((last - first) > 1) {  int mi

Java学习(十八):二叉树的三种递归遍历

二叉树的三种递归遍历: 1 public class StudentNode 2 { 3 private String name; 4 5 private StudentNode leftNode; 6 7 private StudentNode rightNode; 8 9 public String getName() 10 { 11 return name; 12 } 13 14 public void setName(String name) 15 { 16 this.name = na

[转]SQL三种获取自增长的ID方法

SQL SERVER中的三种获得自增长ID的方法  这个功能比较常用,所以记下来以防自己忘掉. SCOPE_IDENTITY 返回插入到同一作用域中的 IDENTITY 列内的最后一个 IDENTITY 值.一个作用域就是一个模块--存储过程.触发器.函数或批处理.因此,如果两个语句处于同一个存储过程.函数或批处理中,则它们位于相同的作用域中. IDENT_CURRENT  返回为任何会话和任何作用域中的指定表最后生成的标识值.这个函数需要一个以表名为值的变量,也就是说虽然不受会话和作用域的限制

pl/sql三种特殊数据类型

pl/sql除了可以使用Orecle规定的基本类型外,还提供了3种特殊的数据类型%type类型.record类型和%rowtype类型. [%type类型] 使用%type可以声明一个与指定列名称相同的数据类型,例如 :v_id emp.id%type 是声名一个和emp表中id字段相同类型的变量. 使用%type定义变量有两点好处:第一,定义变量时不必查看表中各个列的数据类型:第二,如果表中列数据类型进行了修改,使用%type定义的变量会自动进行调整. [ record类型] 也称记录类型,使

用两种递归思路与循环实现单链表的反转

typedef struct ListNode{ int data; struct ListNode *next; }ListNode; //递归一 ListNode *ReverseList (ListNode *pHead, ListNode *nHead = NULL) { //每次取下第一个节点头插法创建新链表 //nHead为反转后链表的头节点 if(pHead == NULL) return NULL; ListNode *pNext = pHead -> next; pHead -

django-将数据库数据转换成JSON格式(ORM和SQL两种情况)

最近打算搞一个自动化运维平台,所以在看Django的知识. 在实际项目开发中,遇到一个小问题:前后端发生数据交互主流采用的是JSON.前端传数据到服务器端比较简单,稍微麻烦的是服务器端传JSON到前端. 首先数据是从数据库中获取的,Django默认使用的是ORM技术,但是作为一个运维人员,我其实比较反感这类抽象出来的API.因为尽管它对于开发人员来说,将数据库的表抽象成了一个对象,便于开发,不需要写SQL语句,但是这也是后期程序造成性能瓶颈的罪魁祸首(再做一次故障处理时,遇到一条70几行的SQL

C++实现二叉树的建立和三种递归遍历

说明:本文仅供学习交流,转载请标明出处,欢迎转载! 二叉树是一种常见的数据结构,二叉树的遍历也是家常便饭的事了,这里仅仅写出一个完整的可以运行的C++代码来随便建立一个如下图所示的二叉树,建一棵二叉树是实现二叉树各种操作的基础,下面的程序也很简单,这只是二叉树练习的开始,以后的博文中,将会紧紧围绕这棵二叉树练习更多的操作:如求二叉树的大小,二叉树的深度,翻转二叉树...,这里只是基础中的基础,只是为以后的学习做铺垫. 下面给出C++代码,代码的功能包括: 1.建立如上图所示的简单的二叉树. 2.

Linq to Sql : 三种事务处理方式

原文:Linq to Sql : 三种事务处理方式 Linq to SQL支持三种事务处理模型:显式本地事务.显式可分发事务.隐式事务.(from  MSDN: 事务 (LINQ to SQL)).MSDN中描述得相对比较粗狂,下面就结合实例来对此进行阐述. 0. 测试环境 OS Windows Server 2008 Enterprise + sp1 IDE Visual Studio 2008, .net framework 3.5 + SP1 DB SQL Server 2000 + sp

SQL四种语言:DDL,DML,DCL,TCL

1.DDL(Data Definition Language)数据库定义语言statements are used to define the database structure or schema. DDL是SQL语言的四大功能之一.用于定义数据库的三级结构,包括外模式.概念模式.内模式及其相互之间的映像,定义数据的完整性.安全控制等约束DDL不需要commit.CREATEALTERDROPTRUNCATECOMMENTRENAME 2.DML(Data Manipulation Lang