oracle一条语句递归查询父子关系
1 建表:
CREATE TABLE test_tree (
test_id INT NOT NULL,
pid INT,
test_val VARCHAR(10),
PRIMARY KEY (test_id)
);
INSERT INTO test_tree VALUES(1, 0, '.NET');
INSERT INTO test_tree VALUES(2, 1, 'C#');
INSERT INTO test_tree VALUES(3, 1, 'J#');
INSERT INTO test_tree VALUES(4, 1, 'ASP.NET');
INSERT INTO test_tree VALUES(5, 1, 'VB.NET');
INSERT INTO test_tree VALUES(6, 0, 'J2EE');
INSERT INTO test_tree VALUES(7, 6, 'EJB');
INSERT INTO test_tree VALUES(8, 6, 'Servlet');
INSERT INTO test_tree VALUES(9, 6, 'JSP');
INSERT INTO test_tree VALUES(10, 0, 'Database');
INSERT INTO test_tree VALUES(11, 10, 'DB2');
INSERT INTO test_tree VALUES(12, 10, 'MySQL');
INSERT INTO test_tree VALUES(13, 10, 'Oracle');
INSERT INTO test_tree VALUES(14, 10, 'SQL Server');
INSERT INTO test_tree VALUES(15, 13, 'PL/SQL');
INSERT INTO test_tree VALUES(16, 15, 'Function');
INSERT INTO test_tree VALUES(17, 15, 'Procedure');
INSERT INTO test_tree VALUES(18, 15, 'Package');
INSERT INTO test_tree VALUES(19, 15, 'Cursor');
INSERT INTO test_tree VALUES(20, 14, 'T-SQL');
使用 START
WITH
CONNECT
BY
语句实现树状查询
使用 SYS_CONNECT_BY_PATH 函数,获取节点的全路径.
COLUMN
"FullPath"
SELECT
LEVEL,
test_id,
test_val,
SYS_CONNECT_BY_PATH(test_val, '\') AS "FullPath"
FROM
test_tree
START WITH
pid =0
CONNECT BY PRIOR test_id = pid
ORDER SIBLINGS BY test_val;
LEVEL TEST_ID TEST_VAL FullPath
---------- ---------- -------------------- -----------------------------------
1 1 .NET \.NET
2 4 ASP.NET \.NET\ASP.NET
2 2 C# \.NET\C#
2 3 J# \.NET\J#
2 5 VB.NET \.NET\VB.NET
1 10 Database \Database
2 11 DB2 \Database\DB2
2 12 MySQL \Database\MySQL
2 13 Oracle \Database\Oracle
3 15 PL/SQL \Database\Oracle\PL/SQL
4 19 Cursor \Database\Oracle\PL/SQL\Cursor
LEVEL TEST_ID TEST_VAL FullPath
---------- ---------- -------------------- -----------------------------------
4 16 Function \Database\Oracle\PL/SQL\Function
4 18 Package \Database\Oracle\PL/SQL\Package
4 17 Procedure \Database\Oracle\PL/SQL\Procedure
2 14 SQL Server \Database\SQL Server
3 20 T-SQL \Database\SQL Server\T-SQL
1 6 J2EE \J2EE
2 7 EJB \J2EE\EJB
2 9 JSP \J2EE\JSP
2 8 Servlet \J2EE\Servlet
oracle一条语句递归查询父子关系相关推荐
- oracle 的 父子关系,oracle父子关系树递归排序要注意什么?
数据库中常要处理父子关系的记录,在oracle中可以用查询语句一次把所有的子记录全部取出来.例如下: t1 t11 t111 t1111 t12 t121 t1211 db数据字段如下: task_i ...
- oracle 多条执行语句同时执行
oracle 多条执行语句同时执行:begin 语名一;语句二; end; 注意 如果写在C#里千万不要用@的方法然后语句里有回车 例: string strSql = "begin upd ...
- oracle into多个变量,Oracle中merge into的使用:该命令使用一条语句从一个或者多个数据源中完成对表的更新和插入数据....
该命令使用一条语句从一个或者多个数据源中完成对表的更新和插入数据. ORACLE 9i 中,使用此命令必须同时指定UPDATE 和INSERT 关键词,ORACLE 10g 做了如下改动. 1,ins ...
- oracle 插入一个语句,oracle如何通过1条语句插入多个值 oracle通过1条语句插入多个值方法...
本篇文章小编给大家分享一下oracle通过1条语句插入多个值方法,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 在实践过程中遇到一个问题, 我想往数据库插入多条数据时,使用 ...
- oracle一条sql运行时间很长,oracle查看执行最慢与查询次数最多的sql语句及其执行速度很慢的问题分析...
oracle查看执行最慢与查询次数最多的sql语句 前言 在ORACLE数据库应用调优中,一个SQL的执行次数/频率也是常常需要关注的,因为某个SQL执行太频繁,要么是由于应用设计有缺陷,需要在业务逻 ...
- oracle与sql语句
oracle与sql语句 数据库基础 Oracle数据库安装及访问 Oracle相关操作 创建表空间与用户 创建表 Oracle数据类型 创建表 修改表 DML语句 INSERT语句 UPDATE语句 ...
- SQL Server 2005新特性之使用with关键字解决递归父子关系
1. 引言 现实项目中经常遇到需要处理递归父子关系的问题,如果把层次关系分开,放在多个表里通过主外键关系联接,最明显的问题就是扩展起来不方便,对于这种情况,一般我们会创建一个使用自连接的表来存放数据. ...
- mysql 单标递归_MySql8 WITH RECURSIVE递归查询父子集的方法
背景 开发过程中遇到类似评论的功能是,需要时用查询所有评论的子集.不同数据库中实现方式也不同,本文使用Mysql数据库,版本为8.0 Oracle数据库中可使用START [Param] CONNEC ...
- 关于Oracle数据库start whith 递归查询的另类认知
众所周知,Oracle数据库的递归查询是 start whith connect by prior 方法,我们在查询上下级部门或组织架构的时候常常会用到它, 其主要的用法为 select 部门编号 f ...
最新文章
- 自动化测试框架搭建-报告-4
- java 的对象强制转换后的调用
- c语言判断一个分数是不是最简分数_青岛版六年级数学上册7.2小数、分数和百分数的互化微课视频 | 练习...
- 湖南科技大学计算机控制技术,湖南科技大学控制理论与控制工程专业
- php7插件开发,php7.2.6 插件fileinfo的安装
- 请问WCF 跟 WebService之间异同
- Linux 开发者最应该知道的命令汇总
- scala语言示例_标有示例的Scala关键字
- linux双向重定向之tee命令
- superoneclick 2.2_总投资2.2亿!又一年产10万吨水性乳液项目开工
- 学习写 Makefile
- Dubbo 2.7.7 发布,FastJson 升级了!
- 最新遥感图像解译标准数据集--202105
- 【软考】数据库系统工程师备考指南(一)
- Elastic-Job介绍
- android开启wifi热点命令,Win7共享WIFI热点让Android手机上网
- python画代码流程图_python如何画流程图
- PMP第6版 每日工具
- 在a标签中使用javascript
- 博客变味:从一方净土沦落为企业枪手
热门文章
- 光感是什么_Olay5款热门精华:淡斑小白瓶VS光感小白瓶如何选?超A瓶不太A
- 呼和浩特 计算机编程入门先学什么,学好UG编程先学什么?应该先弄懂这些问题...
- Oracle表的分区update卡着,分区表update global indexes引起表阻塞
- package-lock.json是做什么用的_做鱼缸用什么玻璃好?
- Android SQLite保存多个选择题的选择信息
- 物理化学 热力学第一定律的概念
- 北京/上海内推 | 字节跳动AI Lab招聘NLP算法模型优化方向实习生
- 送书福利 | 哈工大SCIR倾力打造NLP新书,详解预训练语言模型
- SimBERTv2来了!融合检索和生成的RoFormer-Sim模型
- 多源迁移学习相关研究回顾