树结构表:记录树形数据的二维数据表,包含"本节点ID”和"父节点ID"

经常需要进行递归查询某个节点下的所有节点数据

以下是分别在ORACLE和MSSQL中的实现

如本例子中涉及的表

TB_SM_ORGAN(

ORG_ID int,

ORG_CODE varchar(20),

ORG_NAME varchar(40),

IS_INITDATA char(1),

ORG_PARENTID int,

ORG_TYPEID varchar(6),

ORG_AGENTID int,

ORG_STATUS char(3),

ORG_DESC varchar(200))

【ORACLE】

直接支持,使用SELECT * WHERE ..... START WITH ..... CONNECT BY 本节点ID=父节点ID

例如:

SELECT * FROM TB_SM_ORGAN where Org_Status = 'S0A' START WITH ORG_ID= @OrgId CONNECT BY PRIOR ORG_ID = ORG_PARENTID order by ORG_CODE

【MSSQL】

没有增强型SQL实现,需要使用临时表和循环多次查询的方式实现

create function GetOrganSubTreeByOrganID (@id int)

returns @t table(

ORG_ID int,

ORG_CODE varchar(20),

ORG_NAME varchar(40),

IS_INITDATA char(1),

ORG_PARENTID int,

ORG_TYPEID varchar(6),

ORG_AGENTID int,

ORG_STATUS char(3),

ORG_DESC varchar(200))

as

begin

insert @t select * from TB_SM_ORGAN where org_id = @id

while @@rowcount > 0

insert @t select a.* from TB_SM_ORGAN as a inner join @t as b

on a.org_parentid = b.org_id and a.org_id not in(select org_id from @t)

return

end

使用方法

SELECT * FROM GetOrganSubTreeByOrganID (ID);

出处: http://www.cnblogs.com/sunnyflat/articles/1173239.html

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/16436858/viewspace-594979/,如需转载,请注明出处,否则将追究法律责任。

oracle 树形结构表,树结构表递归查询在ORACLE和MSSQL中的实现方法相关推荐

  1. mysql 查询树形结构_MySql/Oracle树形结构查询

    Oracle树形结构递归查询 在Oracle中,对于树形查询可以使用start with ... connect by select * from treeTable start with id='1 ...

  2. [转]树结构表递归查询在ORACLE和MSSQL中的实现方法

    树结构表:记录树形数据的二维数据表,包含"本节点ID"和"父节点ID" 经常需要进行递归查询某个节点下的所有节点数据 以下是分别在ORACLE和MSSQL中的实 ...

  3. 数据库学习,树形结构的数据库表Schema设计方案

    2019独角兽企业重金招聘Python工程师标准>>> 程序设计过程中,我们常常用树形结构来表征某些数据的关联关系,如企业上下级部门.栏目结构.商品分类等等,通常而言,这些树状结构需 ...

  4. mybatis mysql查询树形结构_mybatis树结构查询的方法

    记录一下 表结构为: BKZ101 bigint(16) (NULL) NO PRI (NULL) select,insert,update,references DRGS疾病分组ID BKA504 ...

  5. Oracle树形结构查询之prior的理解

    --1 建表 create table 宇宙 ( 行星等级 number ,行星名称 varchar2(50) ,上级行星等级 number ); --2 数据准备 insert into 宇宙 (行 ...

  6. mybatis mysql 树形结构_Mybatis查询树形结构数据

    数据表的设计 创建数据表 对于树形结构的数据库设计通常是基于继承关系设计的,也就是通过父ID关联来实现的. 一张树形结构的数据表基本的三个字段:id(自己).name(名称)和parentid(父类编 ...

  7. 数据结构--树形结构

    数据结构--树形结构 今天在博客上看到这样一段代码,感觉挺有意思,代码如下: 1 public class Edge {2 //Name of origin town3 public Node ori ...

  8. 计算机结构中的树状结构,树形结构和图状结构是四种基本的逻辑结构.ppt

    内容提要第章绪论什么是数据结构基本概念和术语算法描述算法的重要特性算法的描述方法算法分析算法设计的要求算法时间效率的度量分析小结习题第章绪论什么是数据结构自计算机诞生以来其应用的发展远远超出了人们对它 ...

  9. Android - N级树形结构实现

    目前已经实现3级之内的任意级树形结构展示(如果想增加更多级,需要扩展排序算法),并支持单选和多选(使用不同的适配器). 实现使用的控件:ListView 首先,最重要的应该是数据源的格式,支持树形结构 ...

最新文章

  1. 另外五个 PHP 设计模式
  2. vue 记录滚动位置_vue 路由跳转记住滚动位置,返回时回到上次滚动位置
  3. 【新星计划】 Python的txt文本操作-读、写
  4. ERROR: ORA-01033: ORACLE initialization or shutdown in progress Oracle无法启动的解决
  5. Vue的响应式及相关问题
  6. 跨境商品的进口税额显示
  7. 前端学习(2125):watch实现
  8. oracle into bl,5_Oracle_Admin_Oracle的启动模式和关闭
  9. golang 数据一   (字符串、数组和数组指针)
  10. apache cxf之 一个简单的JAX-WS服务程序
  11. nginx伪静态php如何配置文件,nginx实现thinkphp伪静态的配置例子
  12. Tomcat常见内存溢出的解决方案
  13. android百度输入法切换,百度输入法输入模式怎么切换 快速一键切换输入法模式方法教程...
  14. openssl 1.0.2 漏洞修复指南
  15. java计算机毕业设计仓库管理系统设计与实现MyBatis+系统+LW文档+源码+调试部署
  16. SIMPLE、PISO 、PIMPLE算法浅析
  17. dcos master挂掉后 slave上面的container会咋样
  18. 内存碎片---内部碎片外部碎片
  19. 关于 OpenSSL“心脏出血”漏洞的分析
  20. 简述 npm 发包流程

热门文章

  1. OPC数据访问方法简介
  2. 「镁客·请讲」小i机器人朱频频:会话AI将成为主流人机交流方式,积累和深度学习是关键...
  3. 【转】第8章 前摄器(Proactor):用于为异步事件多路分离和分派处理器的对象行为模式...
  4. 用spring的InitializingBean的afterPropertiesSet来初始化
  5. Nodejs - 如何用 eventproxy 模块控制并发
  6. 下拉菜单被表单、图片、FLASH挡住的解决办法
  7. 定时器 setTimeout setInterval
  8. MATLAB PDE工具箱电磁场仿真平行电容板及电偶极子详解
  9. android 球形进度,android仿360手机卫士的自定义波浪球形进度View 滚动痕迹
  10. android 旋转生命周期,生命周期-如何区分方向更改和离开应用程序android