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: ...
随机推荐
- C# 自定义属性Attribute
自定义属性 /// <summary> /// 脱敏属性 /// </summary> public class SensitiveAttribute:Attribute { ...
- MySQL -U防止人为误操作
在很多时候操作数据库的时候,可能领导或DBA登陆了数据库,在执行update和delete时,忘记了加where,可能会导致清空表的悲剧,所以-U的好处就体现了. 1.mysql -U的帮助说明 -U ...
- python数据处理
1.数据清洗 1.1 数据格式化 数据格式化是数据清洗常见的形式之一,就是将可读性差的或无法阅读的数据转换成可读性较强的数据格式. python对字符串和数字都有格式化的方法,如%s, %d分别代表格 ...
- 1.浅析Hadoop之HDFS
HDFS ,Hadoop Distribute File System,hadoop分布式文件系统. 主从架构,分主节点NameNode,从节点DataNode.当然还有个SecondaryName, ...
- WinSock WSAEventSelect 模型
在前面我们说了WSAAsyncSelect 模型,它相比于select模型来说提供了这样一种机制:当发生对应的IO通知时会立即通知操作系统,并调用对应的处理函数,它解决了调用send和 recv的时机 ...
- Csharp:字符串操作
public class StringControl { /// <summary> /// 客户端浏览器 /// http://en.wikipedia.org/wiki/Web_bro ...
- Angular选项卡
前几天我发的东西,可能对于没有基础的人很难理解,那么今天,咱们就发点简单点的东西吧! Angular显示隐藏,选项卡! 还是那句话,话不多说,上代码: <!DOCTYPE html> &l ...
- SQL Server 2008 R2如何开启数据库的远程连接(转)
SQL Server 2008默认是不允许远程连接的,如果想要在本地用SSMS连接远程服务器上的SQL Server 2008,远程连接数据库.需要做两个部分的配置: SQL Server Manag ...
- Zygote和System进程的启动过程
##init脚本的启动 +------------+ +-------+ +-----------+ |Linux Kernel+--> |init.rc+-> |app_process| ...
- Python的线程池实现
# -*- coding: utf-8 -*- #Python的线程池实现 import Queue import threading import sys import time import ur ...