oracle 递归查询 start with connect by prior

Oracle递归查询-start with connect by prior 用法 创建测试数据: CREATE TABLE TEST_DEPT(ID varchar2(10) NOT NULL,NAME varchar2(200),PID varchar2(10)); INSERT INTO TEST_DEPT(ID, NAME, PID) VALUES ('1000', '总公司', NULL); INSERT INTO TEST_DEPT(ID, NAME, PID) VALUES ('1001', '北京分公司', '1000'); INSERT INTO TEST_DEPT 阅读详情

 

表结构:

 

 

 

数据:

无序的数据:

id name father_id

1 老太爷 
2 大爷爷 1
3 二爷爷 1
4 大爷爷的大儿子 2
5 二爷爷的二儿子 3
6 二爷爷的大儿子 3
7 大爷爷的二儿子 2
8 外姓爷爷 

 

 

然后开始试试了:

 

 

demo1:

select *
  from family a
 start with a.father_id is null
connect by prior a.id = a.father_id;

 

查询结果:

行数 id name father_id //后面就不再重复说这个数据顺序了

1 1 老太爷 
2 2 大爷爷 1
3 4 大爷爷的大儿子 2
4 7 大爷爷的二儿子 2
5 3 二爷爷 1
6 5 二爷爷的二儿子 3
7 6 二爷爷的大儿子 3
8 8 外姓爷爷 

结论:这样是符合我们的平实需求的,start with 后面跟根节点,最高级

        connect by prior 后面跟上下级条件。也就是以father_id为空为最高级结点,开始遍   历往下找他们的子孙。

 

 

 

 

demo2:

select *
  from family a
 start with a.father_id is null
connect by prior a.father_id = a.id;

查询结果:

 

1 1 老太爷 
2 8 外姓爷爷 
结论:connect by prior  后面如果紧跟start with的条件,那么就是向上找父级,如果跟进的是start with后面条件的上下级对应条件,那么就是找子孙。

 

 

 

demo3:

select *
  from family a
 start with a.father_id = 2
connect by prior a.father_id = a.id;

查询结果:

1 4 大爷爷的大儿子 2
2 2 大爷爷 1
3 1 老太爷 
4 7 大爷爷的二儿子 2
5 2 大爷爷 1
6 1 老太爷 

结论:针对demo2的结论“connect by prior  后面如果紧跟start with的条件,那么就是向上找父级”,是错误的,正确的应该是:connect by prior  后面如果紧跟start with的条件,那么就是倒着来,而且倒着来到start with的条件还不停止,还会继续倒着找条件的父亲。

 

 

demo4:

继续插入数据:

9 9 大爷爷的二儿子的儿子 7
10 10 大爷爷的大儿子的儿子 4

 

select *
  from family a
 start with a.father_id = 2
connect by prior a.id = a.father_id ;

结果:

1 4 大爷爷的大儿子 2
2 10 大爷爷的大儿子的儿子 4
3 7 大爷爷的二儿子 2
4 9 大爷爷的二儿子的儿子 7

结论:start with 后面的条件,放在等号后面,确实是查找子孙的顺序查找。

 

白哥提醒还有个level:就是这样

demo5:

select level, a.*
  from family a
  where level = 2
 start with a.father_id is null
connect by prior a.id = a.father_id ;

结果:

1 2 2 大爷爷 1
2 2 3 二爷爷 1

 

结论:从start with 开始算第一级

 

 

Tiff、jpg图片怎么样添加地理坐标信息 Tiff、jpg图片怎么样添加地理坐标信息 一般,外业调查只有地图资料,如专题图、或者地形图,如何把这些地图资料的扫描地图带上坐标信息,从而内业实现信息化处理?以上问题,可以解决,但根据不同情况有不同的处理方法。     第一种,上面有经纬度外框,图片是矩形,但是没有地理信息。 通过图框的两个角的坐标确定范围,分别是左上(140°E,30°N);右下(150°W,30°N) 解决方 阅读详情

相关推荐

使用python读取卫星测高数据并做相应的处理

5.在python处理结果如下,最大的优点就是比matlab快30-40倍。4.进行粗差的如NaN值,还有进行3倍方差进行对粗差处理。1.首先遍历卫星数据的文件,挨个读取每个数据。有问题,请各位读者及时告知,一起完善内容。3.进行下一步,筛选在研究区域的数据。4.进行按天求平均和按月求平均。2.读取数据主体代码。

爱下去更难! 1131

oracle树形查询本级及直属下级,oracle树形构造查询语句

oracle树形结构查询语句语法:select *from 表名where 条件1start with 条件2connect by prior 当前表字段=级联表字段--start with与connect by prior语句完成递归记录,形成一棵树形结构,通常可以在具有层次结构的表中使用--start with表示开始的记录--connect by prior 指定与当前记录关联时的字段关系代...

weixin_39609071的博客 1709

numeca linux 11,NUMECA FINE/Turbo16下载-NUMECA FINE/Turbo16官方版v16.0 最新版 - 起点软件园...

NUMECA FINE/Turbo16,空气动力学模拟工具,帮助小伙伴随时仿真模拟,让小伙伴可以模拟出最真实的环境,让小伙伴可以轻松完成环境模拟的服务,帮助小伙伴更好的解决自己的课题研究!NUMECA FINE/Turbo16说明1、支持在64位WINDOWS操作系统和LINUX操作系统下运行2、基于全二阶精度的数值格式,保证了计算精度3、采用先进的全多重网格技术和基于密度的求解方法保证了快速的流...

weixin_39858298的博客 1618

Oracle中的递归查询语法(start with...connect by prior)

select * from table1 start with id='0' connect by prior id = parentid     查询id等于0的节点下面的所有子节点     select * from table1 start with id='20' connect by id = prior parentid     查询id等于20的节点上面的所有父节点    

钱多多的专栏 2518

使用Termux在Android设备上编译运行SpecCPU2006

SPEC2006搭配Termux,竟然还能这么玩?!

菜菜的菜园子 2958

Win10环境借助DockerDesktop部署Open web UI集成DeepSeek

Win10环境借助DockerDesktop部署Open web UI集成DeepSeek,并借助DuckDuckGo实现联网查询

虎鲸不是鱼 1698

Oracle START WITH ... CONNECT BY PRIOR 带条件会有重复

查出当前节点下面的所有节点 因为要取表中的部分数据 所以要加条件         SELECT * FROM CFG_CPMP_DMN_TREE WHERE CLASSIFY = 'SCENE' select * from cfg_cpmp_dmn_tree where classify='SCENE' start with code_val='1' connect by prior co

zy_crazy_code的博客 7896

AURIX-TC3xx-GTM详解六-DPLL(Digital PLL Module)-寄存器1-DPLL寄存器

主要有下图这些寄存器2、

m0_69929716的博客 438

Oracle获取所有的上级和下级 connect by

--取所有的上级和下级代码 --取所有的上级代码 select * from dm_qx_gns t start with t.gn_dm='12334' connect by prior t.sjgn_dm=t.gn_dm --取所有的下级代码 select * from dm_qx_gns t start with t.gn_dm='12334' connect by prio

KnuthZ的博客 6985

Oracle EBS(R12+)通过Multi-Org 多组织架构、Multi-Ledger 多账簿、SLA 子分类账会计、多币种引擎、多会计政策并行五大核心能力,为跨国企业提供一体化、自动化、合规的

Oracle EBS(R12+)提供全球会计核算解决方案,通过Multi-Org多组织架构实现跨国集团数据隔离与共享,支持四层组织结构(业务组→法律实体→经营单位→库存组织)。Multi-Ledger多账簿功能允许一笔业务多准则自动核算,包含主账簿、辅助账簿和报告币种。系统内置多币种处理引擎,覆盖全流程货币业务,支持自动重估、再计量和折算。通过SLA子分类账会计实现多会计政策并行处理,满足不同国家会计准则和税制要求。该方案可同时支持本地法定、集团合并及管理分析需求,实现全球财务数据集中管理,提升合规性和运营

金牌架构师 553

芒果YOLOv8改进160:姿态估计Head篇:即插即用|轻量化非对称多级压缩LOADH旋转检测头,原创改进适配YOLOv8高效检测头,检测头新颖改进,全网首发独一份

芒果YOLOv8改进159:OBB旋转检测头Head篇:即插即用|轻量化非对称多级压缩LOADH旋转检测头,原创改进适配YOLOv8高效检测头,检测头新颖改进,全网首发独一份

包括YOLOv5、YOLOv7、YOLOv8等模型改进 810

Oracle 树操作、递归查询(select…start with…connect by…prior)

Oracle 树操作、递归查询(select…start with…connect by…prior) 一、Oracle中start with…connect by prior子句用法 connect by 是结构化查询中用到的,其基本语法是: select … from tablename where 条件1, 可选; connect by 条件2,是连接条件,其中用PRIOR表示上一条记录,...

9140

某招标公告网和vcaptcha验证码识别逆向

本文分析了某验证码系统的加密流程及破解思路。首先通过反混淆技术定位到加密函数,拆解了包含指纹函数、环境参数等组成的加密字符串。研究发现验证码生成涉及canvas指纹、环境检测等反爬机制,可通过模拟浏览器环境绕过。验证过程需要解密图片顺序,通过work2.js计算还原图片位置,再结合滑动轨迹、时间等参数生成验证请求。文章仅提供技术研究思路,强调需遵守法律法规,严禁非法破解信息系统。完整流程包括环境模拟、加密参数还原、图片处理和轨迹生成等步骤,成功率较高。

码王吴彦祖的博客 577

oracle递归指定层级,oracle递归层级查询 start with connect by prior

递归层级查询:start with connect by prior以部门表作为解析表结构:dept{id:'主键',name:'部门名称',parent_id:'父亲id'}select * from deptstart with id=1 connect by prior id= parent_idorder siblings by id分两部分理解:第一步找出一条数据作为基础:select ...

weixin_42508058的博客 1260

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Oracle start with connect by prior 递归查询

条件1:相当于基本的筛选数据条件2:递归查询起始条件条件3:连接条件,其中用PRIOR;就是说上一条记录的id是本条记录的parent_id再进行查询(查子集);;就是说上一条记录的parent_id是本条记录的id再进行查询(查父集);

zk_tww的博客 706

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

oracle递归查询(start with connect by prior)以及 树形统计connect_by_root(子节点汇总到父节点)

oracle递归查询(start with connect by prior)以及 树形统计connect_by_root(子节点汇总到父节点)

@素素~的博客 4540

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

oracle 3个表 递归,Oracle递归查询(start with…connect by prior)

查询基本结构:select … from table_namestart with 条件1connect by 条件21、建测试用表1 create tabletest_prior(2 ids number,3 son varchar2(200),4 father varchar2(200)5 );并插入数据 start with指定树的根(即父节点)实际上你还可以指定多个根的,比如 father...

weixin_29485605的博客 910

oracle中用START WITH...CONNECT BY PRIOR子句实现递归查询

oracle中用START WITH...CONNECT BY PRIOR子句实现递归查询今天发现在oracle中的select语句可以用START WITH...CONNECT BY PRIOR子句实现递归查询,connect by 是结构化查询中用到的,其基本语法是: select ... from tablename start with cond1 connect by cond2 w

qiaopengfei2762的专栏 459

Oracle SqlServer Mysql 无限级次数 递归 遍历树 Oracle 层次查询 start with...connect by prior, with as 递归 ,存储过程递归

  http://blog.sina.com.cn/s/blog_b93c537d0102w8nn.html Liam的博客 oracle、SqlServer、Mysql递归实现 转载2016-02-23 15:43:07 标签:数据库递归 首先,递归都是在一张表里的关系(以下来源均参考自网上资料) 一、Oracle Oracle中的select语句可以用start with.....

许恒的博客 1109

Oracle高级函数篇之递归查询start with connect by prior简单用法

路飞:“把原来优快云的博客转移到博客园咯!” 前段时间,自己负责的任务中刚好涉及到了组织关系的业务需求,自己用了oracle递归查询。下面简单来举个例子。在工作中我们经常会遇到有一定组织关系层次的关系。比如某个省下有多少市,每个市下又有多个区。再或者公司组织部门相互的隶属关系。这时我们就可能会用到start with connect by prior递归查询了 用法举例 1. 基...

anhou0515的博客 213

oracle 递归查询_Oracle递归查询start with connect by prior的用法

概述今天是元宵节,在此祝大家元宵快乐,梦想还在路上,让我们继续加油!今天给大家介绍一下关于Oracle递归查询start with connect by prior、的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧。基本语法connect by递归查询基本语法是:select 1 from 表格 start with ... ...

weixin_39631953的博客 183

oracle递归查询 start with connect by prior

(1)创建表结构 -- Create table createtable TB_DW_JBXX ( dwid CHAR(10) notnull, dwmc VARCHAR2(100) notnull, tcq CHAR(2) notnull, dwlx CHAR(2) notnull, dj NUMBER(3) notnull, yxz

巴黎左岸 · 荼靡花开 501

oracle 逆向递归查询_Oracle递归查询start with connect by prior的用法

一、基本语法connect by递归查询基本语法是:select 1 from 表格 start with ... connect by prior id = pIdstart with:表示以什么为根节点,不加限制可以写1=1,要以id为123的节点为根节点,就写为start with id =123connect by:connect by是必须的,start with有些情况是可以省略的,或...

weixin_39538693的博客 212

Oracle分层查询(递归查询):start with...connect by prior 以及 level关键字

前期准备1.level 和 connect by ,start with 合在一起,一般是用来实现递归(树)查询。2.prior是可选项3.connect by 和 start with 语句先后顺序不影响查询结果。

lisheng19870305的专栏 3041

oracle10递归 nocycle,Oracle递归查询(start with…connect by prior)

查询基本结构:select … from table_namestart with 条件1connect by 条件21、建测试用表1 create tabletest_prior(2 ids number,3 son varchar2(200),4 father varchar2(200)5 );并插入数据 start with指定树的根(即父节点)实际上你还可以指定多个根的,比如 father...

weixin_30717229的博客 1606

oracle用START WITH...CONNECT BY PRIOR子句实现递归查询

  今天发现在oracle中的select语句可以用START WITH...CONNECT BY PRIOR子句实现递归查询,connect by 是结构化查询中用到的,其基本语法是: select ... from tablename start with cond1 connect by cond2 where cond3; 简单说来是将一个树状结构存储在一张表里,比如一个表中存在两个字

Remon的专栏 1083
上一篇: spring timer 基础应用
下一篇: head first 设计模式:策略模式
partner4java
博客等级 码龄17年 481粉丝 183原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值