博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
29.案例:递归
阅读量:5889 次
发布时间:2019-06-19

本文共 679 字,大约阅读时间需要 2 分钟。

     下面的SQL语句使用嵌套定义的子查询RPL来实现递归查询: 

WITH RPL(FId, FNumber,FName,FManagerId) AS         (             SELECT      ROOT.FId, ROOT.FNumber,ROOT.FName,ROOT.FManagerId            FROM T_Person ROOT     WHERE ROOT.FId='00001'  --起始人员编号              UNION ALL                SELECT       CHILD.FId,CHILD.FNumber,CHILD.FName,CHILD.FManagerId     FROM RPL as PARENT,T_Person as CHILD     WHERE PARENT.FId = CHILD.FManagerId ) SELECT * FROM RPL

     执行完毕我们就能在输出结果中看到下面的执行结果: 

     这个递归查询SQL语句的核心部分在子查询定义中,子查询中使用UNION ALL操作符将两个SELECT语句联合起来,第一个SELECT语句是递归查询的起始条件,而第二个SELECT语句将RPL本身和CHILD使用“PARENT.FId = CHILD.FManagerId”这个递归条件连接起来,第二个SELECT语句会递归调用RPL,从而根据“PARENT.FId = CHILD.FManagerId”条件列出T_Person表中的所有层次信息。

 

转载地址:http://spysx.baihongyu.com/

你可能感兴趣的文章
decltype类型指示符
查看>>
虹软ArcFace人脸识别 与 Dlib 人脸识别对比
查看>>
laravel 验证码使用示例
查看>>
IE开发人员工具无法使用
查看>>
分页器(自定制)
查看>>
HDU1877 又一版 A+B
查看>>
往sde中导入要素类报错000732
查看>>
springboot之启动方式
查看>>
初次安装git配置用户名和邮箱及密钥
查看>>
6.1(续)索引、索引组织表--Oracle模式对象
查看>>
动画 球
查看>>
C++中的堆,栈,静态内存区,常量区
查看>>
动态SQL实现与注意事项(有返回值与无返回值动态SQL 实现)
查看>>
java struts2 debug
查看>>
简单够用的设计
查看>>
Android图片圆角效果
查看>>
WeChat Official Account Admin Platform API Introduction
查看>>
C语言写单链表的创建、释放、追加(即总是在最后的位置增加节点)
查看>>
poj1635
查看>>
C# LINQ详解(一)
查看>>