存储过程里的递归 实现方法

一个二叉树的递归,找出左边最下面的一个点 

id 自动编号 

pid 父ID 

id_path 节点路径 

flg 位置,0左边,1右边 

ALTER      PROCEDURE [dbo].[get_class]

复制代码 代码如下:@class int, 

@return int output 

AS

SELECT  @return=isnull(( select top 1 id  from class where pid=@class and flg=0 ),-2)

if @return>-1 

    begin 

    exec get_class @return,@return output--这里为什么要用@return,你要最后得到这个值,必须把它传进去

end

else 

    begin 

    SELECT @return=@class 

    end 

GO  

其实只需一个查询语句就能找出最下面的ID 

节点路径包函1,并且父节点位置都是左边,取出最大一个 

select top 1 * from class a where id_path like '%1,%' and flg=0 and (select flg from class where id=a.pid)=0 order by id desc

时间: 2024-10-18 11:30:29

存储过程里的递归 实现方法的相关文章

存储过程里的递归 实现方法_存储过程

一个二叉树的递归,找出左边最下面的一个点  id 自动编号  pid 父ID  id_path 节点路径  flg 位置,0左边,1右边  ALTER      PROCEDURE [dbo].[get_class]  复制代码 代码如下: @class int,  @return int output  AS  SELECT  @return=isnull(( select top 1 id  from class where pid=@class and flg=0 ),-2)  if @r

oci 输出参数-OCI 怎么提取整型输出参数,这个参数是存储过程里返回的一个值,跟表里的字段没啥关系

问题描述 OCI 怎么提取整型输出参数,这个参数是存储过程里返回的一个值,跟表里的字段没啥关系 OCIStmtFetch()该怎么写呢,还是其他的方法. 这个输出参数是一个结果描述而已,如密码,用户名正确,返回1,错误返回0,跟表的字段没关系

在PL/SQL 开发中调试存储过程和函数的一般性方法

存储过程|函数 在PL/SQL 开发中调试存储过程和函数的一般性方法摘要: Oracle 在PLSQL中提供的强大特性使得数据库开发人员可以在数据库端完成功能足够复杂的任务, 本文将结合Oracle提供的相关程序包(package)以及一个非常优秀的第三方开发工具来介绍在PLSQL中开发及调试存储过程的方法,当然也适用于函数. 版权声明: 本文可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息.原文出处: http://www.aiview.com/notes/ora_using_

用递归的方法将树形结构生成文本并输出

今天下午,吃饱了没事干,突然想写点什么,于是不由自主地想起了某件往事,当年在做XXX的时候好像有一个功能没有做出来.据说算法很复杂,当时就没有研究. 不过,今天想到用递归的方法,把这个功能大致做出来了,虽然称不上完美,至少还是比较简单的,而且代码也不多,才几行. 先给大家看看运行结果,如下图: 其实我说的这么神秘,也没什么,就是这个,把树形的目录结构输出到一个TXT文件中. 其实当初的项目要求比这个更复杂,所以我当时没想到解决方法,不过,像上图这样,虽说远没有达标,不过,至少也不算很难看. 原理

在WPS表格里快速截图的方法

  在WPS表格里快速截图的方法 一.选择你所需要截图的表格区域,使用快捷键Ctrl+C进行复制,或者点击"开始"菜单栏里面的"复制"按钮; 二.点击"粘贴"按钮→"粘贴为图片",这样就会在选定区域内以图片的形式复制出一张图片,选中拖动即可. 三.操作完成,表格下方即为截取的表格区域.

python清除字符串里非数字字符的方法

  本文实例讲述了python清除字符串里非数字字符的方法.分享给大家供大家参考.具体如下: ? 1 2 3 4 import re s = "how19 a*re 254y**ou?" # Using regular expressions print re.sub("D", "", s) 希望本文所述对大家的Python程序设计有所帮助.

JavaScript通过join函数连接数组里所有元素的方法

 这篇文章主要介绍了JavaScript通过join函数连接数组里所有元素的方法,实例分析了javascript中join函数的使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了JavaScript通过join函数连接数组里所有元素的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 <script type="text/javascript"> var days = ["Sunday","Mond

ado.net-求一个无参数 调用存储过程的方法,我调用的是列转行的存储过程 但是访问数据库的方法不知道怎么写

问题描述 求一个无参数 调用存储过程的方法,我调用的是列转行的存储过程 但是访问数据库的方法不知道怎么写 访问数据不知道写 存储过程已经写好 解决方案 prepareCall()方法调用存储过程 解决方案二: use 数据库名称 这不是方法 解决方案三: use 数据库名称 用这个语句就能指向数据库 解决方案四: exec 存储过程名称

比特币核心的使用问题-比特币核心里使用op_return的方法

问题描述 比特币核心里使用op_return的方法 我在比特币核心里用createrawtransaction时,把op_return作为一个输出,会导致错误请问,op_return 可以直接在createrawtransaction 里使用吗?应该如何用,能不能给个例子? 解决方案 http://8btc.com/article-1701-1.html