语法:

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递归查询相关推荐

  1. oracle 逆向递归查询_oracle 递归查询

    connect by 是结构化查询中用到的,其基本语法是: select ... from tablename start by cond1 connect by cond2 where cond3; ...

  2. oracle 加载数据戽_oracle数据库数据导入导出步骤(入门)

    oracle数据库数据导入导出步骤(入门) 说明: 1.数据库数据导入导出方法有多种,可以通过exp/imp命令导入导出,也可以用第三方工具导出,如:PLSQL 2.如果熟悉命令,建议用exp/imp ...

  3. oracle 加载数据戽_oracle字符集 - Oracle数据库管理 - ITPUB论坛-中国专业的IT技术社区...

    暎不在Gb2312编码 Character code tableGB2312 (Simplified Chinese) character code table code  +0 +1 +2 +3 + ...

  4. Oracle利用start with子句实现递归查询

    Oracle利用start with子句实现递归查询 一.数据准备 创建一张表area,表结构如下: 10:59:43 SQL> desc area;Name Null? Type------- ...

  5. oracle触发器判断空值,oracle触发器加条件判断、dblink

    --新增基站同步给电池组信息 create or replace trigger a_b_test after insert or update or delete on BJLT.BASESTATI ...

  6. php delete和truncate,TRUNCATE 删除表,无法回退。默认选择为整个表的内容,所以不能加条件。...

    TRUNCATE 删除表,无法回退.默认选择为整个表的内容,所以不能加条件. DELETE 删除表,可以回退.可以带where 条件.建议使用delete.但是TRUNCATE 删除表数据比delet ...

  7. oracle存储过程 多条件,Oracle多条件查询实际分页存储过程实操

    以下的文章主要是介绍Oracle多条件查询分页存储过程,以下就是Oracle多条件查询分页存储过程具体方案的描述,希望在你今后的学习中会有所帮助.将业务逻辑放到Oracle中使得后台代码很精简,Ora ...

  8. case when then else_啃食Oracle:条件分支表达式CASE

    啃食Oracle:条件分支表达式CASE CASE表达式是条件分支表达式,类似于if - elsif -else条件分支语句.常见用法是在select的表达式列表中使用. 以下图示来自于官方文档 上图 ...

  9. oracle网络加载错误怎么解决,Oracle加载数据库错误解决的方法详细教程

    今天小编给大家分享一篇关于Oracle加载数据库错误解决的方法详细教程,感兴趣的朋友跟小编一起来了解一下吧! 注意:安装时要保证Oracle安装目录不能带有中文字符 (如果第一次安装出现"加 ...

最新文章

  1. libtorch error C1021: 无效的预处理器命令“warning”
  2. centos7;windows下安装和使用spice
  3. python xlwings api_2021-01-13python,xlwings,api运用,及一些问题
  4. Kaggle 数据挖掘比赛经验分享(转)
  5. Facebook Graph API(2)--读取数据之picture
  6. java php cms_内容管理系统的开发策略研究——以PHP CMS、Node.js CMS、Java CMS为例
  7. java 日期 年数_关于java:为什么不赞成使用“新日期(整数年,整数月,整数日)”?...
  8. Linux的安装及忘记Linux密码的措施
  9. Qt信号和槽的连接--发射信号而槽未响应
  10. 计算机网络管理员教材劳动部,劳动部教材办公室
  11. 世界各国(地区)货币名称及其进位制
  12. 第六章 进化智能和群体智能
  13. ipynb转换为python文件
  14. 钓鱼网站与病毒频发背后 网络支付黑色利益链
  15. 人工智能-动物识别系统
  16. 北师大再回首:二十一岁的天空
  17. HTML脚本文件名,在gruntjs minify/uglify之后更改html中的链接或脚本文件名
  18. 调节e18-d80nk的测量距离_工程常用测量仪器操作教学 | 视频+图文
  19. BZOJ 2066 [Poi2004]Gra
  20. 建筑八大员考试武汉标准员考试高海拔公路施工标准化控制的难点

热门文章

  1. 美丽蝴蝶的flash画法
  2. 极速版手机蓝牙APP开发
  3. nexus oss私库中 releases和snapshots库的区别?
  4. 计算机公式模拟,一个公式,计算我们身处模拟的可能性
  5. python如何测试仪器_Python中的测试工具
  6. IPad Pro 2018 sketch
  7. linux如何查看端口是否开放?
  8. Outlook 解决“附件大小超出了允许的范围”
  9. 如何写一份合格的周报
  10. 快速实现微信图片裁剪功能