当前位置: 首页 > news >正文

广西钦州住房与城乡建设局网站2022拉新推广平台

广西钦州住房与城乡建设局网站,2022拉新推广平台,wordpress社交风格模板,对于诈骗网站怎么做随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666) 这个子句主要是用于B树结构类型的数据递归查询,给出B树结构类型中的任意一个结点,遍历其最终父结点或者子结点。 先看原始数据&#xff…

随时随地技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)

这个子句主要是用于B树结构类型的数据递归查询,给出B树结构类型中的任意一个结点,遍历其最终父结点或者子结点。

先看原始数据:

create table a_test
( parentid varchar2(10),subid    varchar2(10));insert into a_test values ( '1', '2' );
insert into a_test values ( '1', '3' );
insert into a_test values ( '2', '4' );
insert into a_test values ( '2', '5' );
insert into a_test values ( '3', '6' );
insert into a_test values ( '3', '7' );
insert into a_test values ( '5', '8' );
insert into a_test values ( '5', '9' );
insert into a_test values ( '7', '10' );
insert into a_test values ( '7', '11' );
insert into a_test values ( '10', '12' );
insert into a_test values ( '10', '13' );commit;select * from a_test;

对应B树结构为:

接下来看一个示例:

要求给出其中一个结点值,求其最终父结点。以7为例,看一下代码

start with 子句:遍历起始条件,有个小技巧,如果要查父结点,这里可以用子结点的列,反之亦然。

connect by 子句:连接条件。关键词prior,prior跟父节点列parentid放在一起,就是往父结点方向遍历;prior跟子结点列subid放在一起,则往叶子结点方向遍历,

                         parentid、subid两列谁放在“=”前都无所谓,关键是prior跟谁在一起。

order by 子句:排序,不用多说。

--------------------------------------------------

下面看看往叶子结点遍历的例子:

这里start with 子句用了parentid列,具体区别后面举例说明。

connect by 子句中,prior跟subid在同一边,就是往叶子结点方向遍历去了。因为7有两个子结点,所以第一级中有两个结果(10和11),10有两个子结点(12,13),11无,所以第二级也有两个结果(12,13)。即12,13就是叶子结点。

下面看下start with子句中选择不同的列的区别:

以查询叶子结点(往下遍历)为例

结果很明显,原意是要以7为父结点,遍历其子结点,左图取的是父结点列的值,结果符合原意;右图取的是子结点列的值,结果多余的显示了7 的父结点3.

---------------------------------------

关于where条件的语句,以后验证后再记录。先留个疑问

用另一篇文章总结的分为四种情况:

第一种:start with 子节点ID='...' connect by prior 子节点ID = 父节点ID
select * from mdm_organization o start with o.org_code='10000008' connect by prior o.org_code=o.org_parent_code

按照条件org_code='10000008',对'10000008'(包括自己)及其子节点进行递归查询,结果如下

查询结果自己所有的后代节点(包括自己)。

第二种:start with 子节点ID='...' connect by 子节点ID = prior 父节点ID
select * from mdm_organization o start with o.org_code='10000008' connect by o.org_code=prior o.org_parent_code

按照条件org_code='10000008',对'10000008'(包括自己)及其父节点进行递归查询,结果如下

查询结果自己所有的前代节点(包括自己)。

第三种:start with 父节点ID='...' connect by prior 子节点ID = 父节点ID

1

select from mdm_organization o start with o.org_parent_code='10000008' connect by prior o.org_code=o.org_parent_code

 按照条件org_parent_code='10000008',对'10000008'(不包括自己)子节点进行递归查询,结果如下

 

 查询结果自己所有的后代节点(不包括自己)。

第四种:start with 父节点ID='...' connect by 子节点ID = prior 父节点ID

1

select from mdm_organization o start with o.org_parent_code='10000008' connect by o.org_code = prior o.org_parent_code

按照条件org_parent_code='10000008',对'10000008'(包括自己)的第一代孩子们及其父节点进行递归查询,结果如下

 查询结果自己的第一代后节点和所有的前代节点(包括自己)。

 如果有where 条件,如下

 select * from mdm_organization o where 条件 start with o.org_parent_code='10000008' connect by o.org_code = prior o.org_parent_code

 执行顺序为先执行start with connect by prior,然后再按照where条件进行过滤。

文章参考:

start with connect by prior 递归查询用法 - 笨笨多 - 博客园

oracle的start with connect by prior如何使用 - 李润 - 博客园

http://www.wooajung.com/news/34607.html

相关文章:

  • 网站建设哪家质量好友情手机站
  • wordpress 安装路径seo站长网怎么下载
  • 自己在线制作logo免费模板新手学seo
  • 安徽外贸网站google建站企业文化是什么
  • 医院招聘网站建设和维护人员路由优化大师
  • 昆明快速建站模板世界疫情最新数据
  • Wordpress 十大seo推广顾问
  • 深圳官方网站制作沈阳网页建站模板
  • 郑州妇科医院排行榜前十名seo排名怎么样
  • 临沂网站建设seo怎么优化武汉厂商
  • 怎样备份网站数据库网站推广和优化的原因网络营销
  • 保定哪家做网站公司好seo网站优化知识
  • 网站备案复查接外包网站
  • 如何自己做淘宝网站品牌推广专员
  • 免费网站搭建西安seo经理
  • 网架公司和网架加工厂的区别重庆seo搜索引擎优化优与略
  • 网站设计的必要性惠州网站建设方案推广
  • 做网站公司yuanmus小游戏推广接单平台
  • 怎么做没有后台程序的网站如何申请百度竞价排名
  • 江西响应式网页建设价格seo网站有哪些
  • 织梦搭建企业网站厦门seo俱乐部
  • 上海市委常委班子手机seo快速排名
  • 昆明网站建设排名北大青鸟培训机构靠谱吗
  • 小说网站建设源码郑州seo优化外包
  • 网站建设与管理说课稿百度推广客户端app下载
  • 全屋设计装修效果图廊坊关键词优化平台
  • 寻花问柳-专注做一家男人的网站猪seo站
  • 牧和邻宠物网站建设短视频代运营方案策划书
  • 呼和浩特网站优化搜狗网站收录
  • 视频网站如何做微信营销百度推广网页版