Oracle10g中层次查询简介
我们可以通过START WITH . . . CONNECT BY . . .子句来实现SQL的 层次查询,而Oracle 10g 为其添加许多了新的伪列。十多年以来,Oracle SQL 具有依照层次关系进行查询的 功能。例如,你可以指定一个起始条件,然后根据一个或多个连接条件来确定孩子行的内容
我们可以通过START WITH . . . CONNECT BY . . .子句来实现SQL的 层次查询,而Oracle 10g 为其添加许多了新的伪列。十多年以来,Oracle SQL 具有依照层次关系进行查询的 功能。例如,你可以指定一个起始条件,然后根据一个或多个连接条件来确定孩子行的内容。举例来说,现在假设我有一个表,里面记录了世界上的某些地区,其表结构如下:
create table hier<br><br>(<br><br>parent varchar2(30),<br><br>child varchar2(30)<br><br>);<br><br>insert into hier values(null,'Asia');<br><br>insert into hier values(null,'Australia');<br><br>insert into hier values(null,'Europe');<br><br>insert into hier values(null,'North America');<br><br>insert into hier values('Asia','China');<br><br>insert into hier values('Asia','Japan');<br><br>insert into hier values('Australia','New South Wales');<br><br>insert into hier values('New South Wales','Sydney');<br><br>insert into hier values('California','Redwood Shores');<br><br>insert into hier values('Canada','Ontario');<br><br>insert into hier values('China','Beijing');<br><br>insert into hier values('England','London');<br><br>insert into hier values('Europe','United Kingdom');<br><br>insert into hier values('Japan','Osaka');<br><br>insert into hier values('Japan','Tokyo');<br><br>insert into hier values('North America','Canada');<br><br>insert into hier values('North America','USA');<br><br>insert into hier values('Ontario','Ottawa');<br><br>insert into hier values('Ontario','Toronto');<br><br>insert into hier values('USA','California');<br><br>insert into hier values('United Kingdom','England'); 登录后复制 |
那么我们可以使用START WITH . . . CONNECT BY . . .从句将父级地区与孩子地区连接起来,并将其层次等级显示出来。
column child format a40<br><br>select level,lpad(' ',level*3)||child child<br><br>from hier<br><br>start with parent is null<br><br>connect by prior child = parent;<br><br>LEVEL CHILD<br><br>---------- --------------------------<br><br>1 Asia<br><br>2 China<br><br>3 Beijing<br><br>2 Japan<br><br>3 Osaka<br><br>3 Tokyo<br><br>1 Australia<br><br>2 New South Wales<br><br>3 Sydney<br><br>1 Europe<br><br>2 United Kingdom<br><br>3 England<br><br>4 London<br><br>1 North America<br><br>2 Canada<br><br>3 Ontario<br><br>4 Ottawa<br><br>4 Toronto<br><br>2 USA<br><br>3 California<br><br>4 Redwood Shores 登录后复制 |
自从Since Oracle 9i 开始,就可以通过 SYS_CONNECT_BY_PATH 函数实现将从父节点到当前行内容以“path”或者层次元素列表的形式显示出来。 如下例所示:
column path format a50<br><br>select level,sys_connect_by_path(child,'/') path<br><br>from hier<br><br>start with parent is null<br><br>connect by prior child = parent;<br><br>LEVEL PATH <br><br>-------- --------------------------------------------<br><br>1 /Asia<br><br>2 /Asia/China<br><br>3 /Asia/China/Beijing<br><br>2 /Asia/Japan<br><br>3 /Asia/Japan/Osaka<br><br>3 /Asia/Japan/Tokyo<br><br>1 /Australia<br><br>2 /Australia/New South Wales<br><br>3 /Australia/New South Wales/Sydney<br><br>1 /Europe<br><br>2 /Europe/United Kingdom<br><br>3 /Europe/United Kingdom/England<br><br>4 /Europe/United Kingdom/England/London<br><br>1 /North America<br><br>2 /North America/Canada<br><br>3 /North America/Canada/Ontario<br><br>4 /North America/Canada/Ontario/Ottawa<br><br>4 /North America/Canada/Ontario/Toronto<br><br>2 /North America/USA<br><br>3 /North America/USA/California<br><br>4 /North America/USA/California/Redwood Shores 登录后复制 |
select connect_by_isleaf,sys_connect_by_path(child,'/') path<br><br>from hier<br><br>start with parent is null<br><br>connect by prior child = parent;<br><br>CONNECT_BY_ISLEAF PATH<br><br>---------------------------------- 登录后复制 0 /Asia<br><br>0 /Asia/China<br><br>1 /Asia/China/Beijing<br><br>0 /Asia/Japan<br><br>1 /Asia/Japan/Osaka<br><br>1 /Asia/Japan/Tokyo<br><br>0 /Australia<br><br>0 /Australia/New South Wales<br><br>1 /Australia/New South Wales/Sydney<br><br>0 /Europe<br><br>0 /Europe/United Kingdom<br><br>0 /Europe/United Kingdom/England<br><br>1 /Europe/United Kingdom/England/London<br><br>0 /North America<br><br>0 /North America/Canada<br><br>0 /North America/Canada/Ontario<br><br>1 /North America/Canada/Ontario/Ottawa<br><br>1 /North America/Canada/Ontario/Toronto<br><br>0 /North America/USA<br><br>0 /North America/USA/California<br><br>1 /North America/USA/California/Redwood Shores 登录后复制 |

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

12306订票app下载最新版是一款大家非常满意的出行购票软件,想去哪里就去那里非常方便,软件内提供的票源非常多,只需要通过实名认证就能在线购票,所有用户的出行车票机票都可以轻松买到,享受不同的优惠折扣。还能提前开启预约抢票,预约酒店、专车接送都是可以的,有了它想去哪里就去那里一键购票,出行更加简单方便,让大家的出行体验更舒服,现在小编在线详细为12306用户们带来查看历史购票记录的方法。 1.打开铁路12306,点击右下角我的,点击我的订单 2.在订单页面点击已支付。 3.在已支付页

学信网如何查询自己的学历?在学信网中是可以查询到自己的学历,很多用户都不知道如何在学信网中查询到自己的学历,接下来就是小编为用户带来的学信网查询自己学历方法图文教程,感兴趣的用户快来一起看看吧!学信网使用教程学信网如何查询自己的学历一、学信网入口:https://www.chsi.com.cn/二、网站查询:第一步:点击上方学信网地址,进入首页点击【学历查询】;第二步:在最新的网页中点击如下图箭头所示的【查询】;第三步:之后在新页面点击【的登陆学信档案】;第四步:在登陆页面输入信息点击【登陆】;

对象关系映射(ORM)框架在python开发中扮演着至关重要的角色,它们通过在对象和关系数据库之间建立桥梁,简化了数据访问和管理。为了评估不同ORM框架的性能,本文将针对以下流行框架进行基准测试:sqlAlchemyPeeweeDjangoORMPonyORMTortoiseORM测试方法基准测试使用了一个包含100万条记录的SQLite数据库。测试对数据库执行了以下操作:插入:向表中插入10,000条新记录读取:读取表中的所有记录更新:更新表中所有记录的单个字段删除:删除表中的所有记录每个操作

MySQL与PL/SQL是两种不同的数据库管理系统,分别代表了关系型数据库和过程化语言的特点。本文将比较MySQL和PL/SQL的异同点,并附带具体的代码示例进行说明。MySQL是一种流行的关系型数据库管理系统,采用结构化查询语言(SQL)来管理和操作数据库。而PL/SQL是Oracle数据库特有的过程化语言,用于编写存储过程、触发器和函数等数据库对象。相同

使用苹果手机想要查询激活日期,最好的方法是通过手机中的序列号来查询,也可以通过访问苹果的官网来进行查询,通过连接电脑查询,下载第三方软件查询。苹果手机怎么查询激活日期答:序列号查询,苹果官网查询,电脑查询,第三方软件查询1、用户最好的方式就是知道自己手机的序列号,打开设置通用关于本机就可以看到序列号。2、使用序列号不仅可以知道自己手机的激活日期,还可以查看手机版本,手机产地,手机出厂日期等。3、用户访问苹果的官网找到技术支持,找到页面底部的服务和维修栏目,里面查看iPhone的激活信息。4、用户

对象关系映射(ORM)是一种编程技术,允许开发人员使用对象编程语言来操作数据库,而无需直接编写sql查询。python中的ORM工具(例如SQLAlchemy、Peewee和DjangoORM)简化了大数据项目的数据库交互。优点代码简洁性:ORM消除了编写冗长的SQL查询的需要,这提高了代码简洁性和可读性。数据抽象:ORM提供了一个抽象层,将应用程序代码与数据库实现细节隔离开来,提高了灵活性。性能优化:ORM通常会使用缓存和批量操作来优化数据库查询,从而提高性能。可移植性:ORM允许开发人员在不

论坛是互联网上非常常见的网站形式之一,它为用户提供了一个分享信息、交流讨论的平台。而Discuz是一款常用的论坛程序,相信很多站长都已经非常熟悉了。在进行Discuz论坛的开发和管理过程中,经常需要查询数据库中的数据来进行分析或处理。在这篇文章中,我们将分享一些查询Discuz数据库位置的技巧,并提供具体的代码示例。首先,我们需要了解Discuz的数据库结构

对象关系映射(ORM)是一种技术,它允许在面向对象编程语言和关系数据库之间建立桥梁。使用pythonORM可以显着简化数据持久性操作,从而提高应用程序的开发效率和可维护性。优势使用PythonORM具有以下优势:减少样板代码:ORM自动生成sql查询,从而避免编写大量的样板代码。简化数据库交互:ORM提供了一个统一的接口,用于与数据库交互,简化了数据操作。提高安全性:ORM使用参数化查询,可以防止SQL注入等安全漏洞。促进数据一致性:ORM确保对象与数据库之间的同步,维护数据一致性。选择ORM有
