• with 语句包含递归 sql 改写


    问题现象
    with 语句包含递归 sql 改写。
    处理方法
    示例 1
    create table A_ORGAN(id int,name varchar(16),parent int);
    insert into A_ORGAN values(1,' 南大通用 ',0);
    insert into A_ORGAN values(2,' 行销部 ',1); GBase 8a MPP Cluster FAQ FAQ
    文档版本(2021-04-02) 南大通用数据技术股份有限公司
    79
    insert into A_ORGAN values(3,' 专业服务组 ',2);
    insert into A_ORGAN values(4,' 售后组 ',2);
    with rpl(id,name,parent) as
    (select id, name, parent
    from A_ORGAN
    where parent =1
    union all
    select t1.id, t1.name, t1.parent
    from rpl t2, A_ORGAN t1
    where t2.id = t1.parent)
    select * from rpl
    oracle 中执行结果
    SQL> with rpl(id,name,parent) as
    2 (select id, name, parent
    3 from A_ORGAN
    4 where parent =1
    5 union all
    6 select t1.id, t1.name, t1.parent
    7 from rpl t2, A_ORGAN t1
    8 where t2.id = t1.parent)
    9 select * from rpl ;
    ID NAME PARENT
    ---------- ---------------- ----------
    2 行销部 1
    3 专业服务组 2 GBase 8a MPP Cluster FAQ FAQ
    文档版本(2021-04-02) 南大通用数据技术股份有限公司
    80
    4 售后组 2
    SQL>
    示例 2
    GBase 8a 中目前不支持这种复杂的 with 语句,使用 START WITH CONNECT
    BY 改写,由于当前限制只支持复制表,改写如下:
    create table A_ORGAN1(id int,name varchar(16),parent int)replicated;
    SELECT ID
    ,NAME
    ,PARENT
    FROM A_ORGAN1 start WITH PARENT = 1
    connect BY prior ID = PARENT;
    gbase> SELECT ID
    -> ,NAME
    -> ,PARENT
    -> FROM A_ORGAN1 start WITH PARENT = 1
    -> connect BY prior ID = PARENT;
    +------+-----------------+--------+
    | ID | NAME | PARENT |
    +------+-----------------+--------+
    | 2 | 行销部 | 1 |
    | 3 | 专业服务组 | 2 |
    | 4 | 售后组 | 2 |
    +------+-----------------+--------+
    3 rows in set (Elapsed: 00:00:00.00)
  • 相关阅读:
    创新案例分享 | 医院DRG系统建设项目,助力精细化分析医疗数据
    Ubuntu16.04无法卸载VSCode
    Python笔记 之 计算商品复购
    【押题】24考研押题
    设计模式:适配器模式(论如何把鼠头适配加工成鸭脖)
    Vue packages version mismatch: vue@xxx vue-server-renderer@xxx
    关于卷积神经网络的步幅(stride)
    24-Docker-常用命令详解-dcoker search
    机器视觉系列4:C++部署pytorch模型
    Android扫码连接WIFI实现
  • 原文地址:https://blog.csdn.net/m0_49291452/article/details/125542861