Oracle树形结构数据---常见处理情景
Oracle树形结构数据---常见处理情景
1.查看表数据结构
SELECT *
FROM QIANCODE.TREE_HIS_TABLE T
ORDER BY T.NODE_LEVEL;
其中:NODE_SID_DESC显示的是当前行中节点的‘节点详情’。
部分数据如下图所示:

2.树形结构数据--处理情景
处理情景一:查询出某个节点下的所有叶子节点
查询代码如下:
SELECT *
FROM(SELECT A.RN
,A.NODE_CODE
,A.NODE_NAME
,A.NODE_PID
,A.NODE_SID_DESC
,LEAD(A.LEVELSS) OVER(ORDER BY RN) AA
--1.2只有叶子节点才有 AA<=A.LEVELSS,即找出所有的叶子节点
,CASE
WHEN LEAD(A.LEVELSS) OVER(ORDER BY RN)>A.LEVELSS THEN
0
ELSE
1
END LEAF
--1.1查找某节点及该节点下的所有子孙节点
FROM(SELECT ROWNUM RN
,T.NODE_CODE
,T.NODE_NAME
,T.NODE_PID
,T.NODE_SID_DESC
,LEVEL LEVELSS
FROM QIANCODE.TREE_HIS_TABLE T
START WITH T.NODE_CODE='1'
CONNECT BY PRIOR T.NODE_CODE=T.NODE_PID) A
)B
WHERE B.LEAF=1;
查询思路:第一步,通过connect by..start with 查出该节点及该节点下的所有子孙节点,并查出该查询结果下的伪列rownum;
第二步,使用分析函数over(),根据rownum进行排序,LEAD(A.LEVELSS) OVER(ORDER BY RN)>A.LEVELSS查询出当前行的下一行数据对应的层级是否大于当前行的层级,如果下一行数据的层级小于当前行层级,则表明当前行为叶子节点(因为当前数据已经按查询节点下的子孙节点层级组成结构依次排序)。
第三步,查询出所有步骤二中所有叶子节点,即为该查询节点下的所有叶子节点。
----------------------------------==============================更多内容持续更新中==================================================--------------------------
Oracle树形结构数据查询的基本知识请查看:https://www.cnblogs.com/zhoudaqianhaha/p/Oracle_ShuXing111.html
Oracle窗口函数基本知识请查看:
Oracle树形结构数据---常见处理情景的更多相关文章
- Oracle树形结构数据-相关知识总结
Oracle树形结构数据--基本知识 1.数据组成 2.基本查询 2.1.查询某节点及该节点下的所有子孙节点 SELECT * FROM QIANCODE.TREE_TABLE_BASI ...
- 前端js重组树形结构数据方法封装
不知道大家平时工作中,有没有遇到这样一种情况:后端接口返回的数据,全都是一维的数组,都是平铺直叙式的数据,业务需求却要你实现树形结构的功能.那么,针对这种情况该怎么办呢?是跟后台好好沟通一下呢,还是沟 ...
- 【Tree 3】树形结构数据加载的思考
前面两篇文章,分别介绍了使用递归和非递归算法加载树形结构数据的方式,本篇文章,则是自己闲下来的时候,进行的一点小思考. 一.什么地方会用到树形结构 刚开始一看到这种结构的时候,最先是想到了家谱.家谱就 ...
- oracle 树形SQL
oracle树形sql查询实例分析 通过此SQL语句 [sql] select * from tree 查看原始数据如下: 我们要想得到如下的一个树形查询结果如下图所示(包含 R ...
- oracle 树形表结构查询 排序
oracle 树形表结构排序 select * from Table start with parentid is null connect by prior id=parentid order SI ...
- oracle数据库管理系统常见的错误(一)
oracle数据库管理系统常见的错误之一如下: Listener refused the connection with the following error:ORA-12519, TNS:no a ...
- 整理oracle 树形查询
注:本文参考了<整理oracle 树形查询> sql树形递归查询是数据库查询的一种特殊情形,也是组织结构.行政区划查询的一种最常用的的情形之一.下面对该种查询进行一些总结: create ...
- MySql/Oracle树形结构查询
Oracle树形结构递归查询 在Oracle中,对于树形查询可以使用start with ... connect by select * from treeTable start with id='1 ...
- js将有父子关系的数据转换成树形结构数据
js将有父子关系的数据转换成树形结构数据 比如如下基本数据: let allDatas = [ { id: 3, name: 'bbbb', parendId: 1 }, { id: 2, name: ...
随机推荐
- js控制5秒返回指定界面,或上一个界面
js控制5秒返回指定界面,代码如下 <head> <meta http-equiv="Content-Type" content="text/html; ...
- 项目管理系统 TAIGA 部署
题记 使用了 MantisBT 一段时间,觉得功能太少,只局限在错误跟踪,而且操作体验比较差,界面很糟糕,很早就想将其换掉. 偶然发现一个很不错的新选择:Taiga,于是就试着将其部署下来,发现绝对是 ...
- jquery autocomplete jqueryui报错
使用jquery autocomplete 但是却报错jquery ui 0 TypeError: t[0] is undefined 本地部署是没有问题的,但是放到正式上面就会出错. 同时mvc的m ...
- navicat 12 破解
一.安装 官方下载下载 http://www.navicat.com.cn/download/navicat-premium 二.安装完后下载破解文件 https://pan.baidu.com/s/ ...
- Django——CBV与FBV
一.FBV FBV(function base views) 就是在视图里使用函数处理请求. 二.CBV CBV(class base views) 就是在视图里使用类处理请求. Python是一个面 ...
- html5格式样式
<b> 加粗 <b style="font-size: 100px;">大字体</b>
- .NET开源工作流RoadFlow-表单设计-附件管理
在表单中添加一个附件管理的控件: 文件类型:指定可以上传的文件类型.
- SQL Server2008宝典 全书代码
-- ============================================= -- Create database template -- ==================== ...
- Linux漏洞分析入门笔记-CVE-2015-0235
Ubuntu 12.04 32位 ida 7.0 0x00:漏洞描述 1.glibc的__nss_hostname_digits_dots存在缓冲区溢出漏洞,导致使用gethostbyname系列函数 ...
- zan-framework mysql连接
①根据文档内容要配置sqlmap连接池的读写白名单 http://doc.zanphp.io/zh/libs/connection_pool.html 示例代码 // demo.demo.demo_s ...