oracle 加条件 向上递归查询_oracle递归查询
语法:
select *
from tablename t start with column =?
connect by [prior] t.id =[prior]t.parentid
例如:菜单表,表结构如下
数据如下:
一、从上向下查
1、查询某个指定id的所有下级菜单
select * fromtb_menu t
startwith t."PARENT" = 1connectby prior t."ID" = t."PARENT"
注:从上向下查,就是指定某个节点,查询其下所有的子节点(包含直接子节点和非直接子节点),故start with 条件接parent = ?;
而connect by是指定递归时记录与记录间的关系;
最重要的区分是prior:从上向下查,1作为parent,故将prior放在parent字段的另外一边,即表示查询所有的子条目
效果图:
2、查询某个指定id的所有下级菜单及该指定id的菜单信息
select * fromtb_menu t
startwith t.id = 1connectby prior t."ID" = t."PARENT"
注:从上向下查询,查找某个指定节点下的所有子节点和该指定节点,故start with条件指定id = ?,表示id = ?的数据开始向下查询(包含指定id条目)。
而connect by是指定递归时记录与记录间的关系;
最重要的区分是prior:从上向下查,1作为parent,故将prior放在parent字段的另外一边,即表示查询所有的子条目
效果图:
二、从下向上查询
1、查询某个指定id的所有上级菜单
select * fromtb_menu t
startwith t.id = 42connectby t."ID" = prior t."PARENT"
注:从下向上查询,只有“包含该条记录”的查询,这点同从上向下查询不同
prior的位置:将42看作id,获取其所有的parent,所以将prior放在parent一边
效果图:
三、总结
1、从上向下查询,可以有两种结果:包含指定条目、不包含指定条目
2、从下向上查询,只有一种个结果:包含指定条目
3、prior的位置:
从上向下查询:start with column = ?
?是作为父级,prior放在子级一边,表示查询所有的子级
从下向上查询:start with column = ?
?是作为子级,prior放在父级一边,表示查询所有的父级
oracle 加条件 向上递归查询_oracle递归查询相关推荐
- oracle 逆向递归查询_oracle 递归查询
connect by 是结构化查询中用到的,其基本语法是: select ... from tablename start by cond1 connect by cond2 where cond3; ...
- oracle 加载数据戽_oracle数据库数据导入导出步骤(入门)
oracle数据库数据导入导出步骤(入门) 说明: 1.数据库数据导入导出方法有多种,可以通过exp/imp命令导入导出,也可以用第三方工具导出,如:PLSQL 2.如果熟悉命令,建议用exp/imp ...
- oracle 加载数据戽_oracle字符集 - Oracle数据库管理 - ITPUB论坛-中国专业的IT技术社区...
暎不在Gb2312编码 Character code tableGB2312 (Simplified Chinese) character code table code +0 +1 +2 +3 + ...
- Oracle利用start with子句实现递归查询
Oracle利用start with子句实现递归查询 一.数据准备 创建一张表area,表结构如下: 10:59:43 SQL> desc area;Name Null? Type------- ...
- oracle触发器判断空值,oracle触发器加条件判断、dblink
--新增基站同步给电池组信息 create or replace trigger a_b_test after insert or update or delete on BJLT.BASESTATI ...
- php delete和truncate,TRUNCATE 删除表,无法回退。默认选择为整个表的内容,所以不能加条件。...
TRUNCATE 删除表,无法回退.默认选择为整个表的内容,所以不能加条件. DELETE 删除表,可以回退.可以带where 条件.建议使用delete.但是TRUNCATE 删除表数据比delet ...
- oracle存储过程 多条件,Oracle多条件查询实际分页存储过程实操
以下的文章主要是介绍Oracle多条件查询分页存储过程,以下就是Oracle多条件查询分页存储过程具体方案的描述,希望在你今后的学习中会有所帮助.将业务逻辑放到Oracle中使得后台代码很精简,Ora ...
- case when then else_啃食Oracle:条件分支表达式CASE
啃食Oracle:条件分支表达式CASE CASE表达式是条件分支表达式,类似于if - elsif -else条件分支语句.常见用法是在select的表达式列表中使用. 以下图示来自于官方文档 上图 ...
- oracle网络加载错误怎么解决,Oracle加载数据库错误解决的方法详细教程
今天小编给大家分享一篇关于Oracle加载数据库错误解决的方法详细教程,感兴趣的朋友跟小编一起来了解一下吧! 注意:安装时要保证Oracle安装目录不能带有中文字符 (如果第一次安装出现"加 ...
最新文章
- libtorch error C1021: 无效的预处理器命令“warning”
- centos7;windows下安装和使用spice
- python xlwings api_2021-01-13python,xlwings,api运用,及一些问题
- Kaggle 数据挖掘比赛经验分享(转)
- Facebook Graph API(2)--读取数据之picture
- java php cms_内容管理系统的开发策略研究——以PHP CMS、Node.js CMS、Java CMS为例
- java 日期 年数_关于java:为什么不赞成使用“新日期(整数年,整数月,整数日)”?...
- Linux的安装及忘记Linux密码的措施
- Qt信号和槽的连接--发射信号而槽未响应
- 计算机网络管理员教材劳动部,劳动部教材办公室
- 世界各国(地区)货币名称及其进位制
- 第六章 进化智能和群体智能
- ipynb转换为python文件
- 钓鱼网站与病毒频发背后 网络支付黑色利益链
- 人工智能-动物识别系统
- 北师大再回首:二十一岁的天空
- HTML脚本文件名,在gruntjs minify/uglify之后更改html中的链接或脚本文件名
- 调节e18-d80nk的测量距离_工程常用测量仪器操作教学 | 视频+图文
- BZOJ 2066 [Poi2004]Gra
- 建筑八大员考试武汉标准员考试高海拔公路施工标准化控制的难点