zoukankan      html  css  js  c++  java
  • start with...connect by子句的浅用

    start with的用法,其基本语法如下:

    select … from tablename
    start with 条件1
    connect by 条件2
    where 条件3;

    但是我在pl/sql中写入以上格式的时候,竟然会报错!于是将where子句放在了from子句后面就成功了。

    要想用到此种查询语句,就需要在表结构中设计一个子值字段和一个对应的父值字段。

    select ... from ... start with...connect by的结果是将子项和父项查询出来,按照树状结构存储在一张表中。如果语句后面没有加上order by条件,那么查询出来的结果是以树的中序遍历的结果存储在结果表中。

    在这个语法中,出现了一个PRIOR关键字。其大致用法如下:

    select * from T_Role  where State!=-1 start with roleId='bbdb2f75' connect by prior roleId = parent_roleId order by idx 

    从以上sql语句可以看出,start with后面跟的就是整棵树的根节点。网上有很多对prior关键字的解释不是很通俗易懂。按照我的理解,prior关键字在子值字段前面,那么就需要查询其子孙节点,也就是树的自顶向下查询;如果prior关键字在父值字段前面,那就是需要查询根节点的祖先节点,也就是树的自底向上查询。这样理解的确很通俗易懂,用起来也方便。上面这条sql语句就是要查询根节点为"bbdb2f75"的子孙节点。roleId为子值字段,parent_roleId为父值子段。

     
  • 相关阅读:
    HTML 简介
    Composer 安装与使用
    给手绘图着色(添加颜色或色彩):CVPR2020论文点评
    图像分类:CVPR2020论文解读
    CVPR2020论文解读:OCR场景文本识别
    CVPR2020论文解读:手绘草图卷积网络语义分割
    汽车芯片综述
    CVPR2020论文解析:视觉算法加速
    CVPR2020无人驾驶论文摘要
    CVPR2020论文解析:视频语义检索
  • 原文地址:https://www.cnblogs.com/williamwsj/p/6970942.html
Copyright © 2011-2022 走看看