• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

ORACLE中数据递归查询遍历sql语句

mysql 搞代码 4年前 (2022-01-09) 16次浏览 已收录 0个评论

查询遍历,需要在将数据在基表中按照层次结构进行存储。比如一个组织机构就是这样的典型例子:

  实现语句:

 

 select column

  from table_name

  start with column=value

  connect by prior 父主键=子外键

  例1:在oracle的emp 表中,每一条记录都有一个唯一标识当前雇员的empno和标识这个雇员的经理的mgr列。如果mgr 为空,则该雇员是该机构的最顶级。现在要列出每个雇员的层次结构(从顶到底):

 

 select lpad(‘ ‘,4*(level-1))||ename name ,empno,mgr from emp

  start with mgr is null

  connect by prior empno=mgr;

  name empno mgr

  ——————–     ——— ———

  king 7839

  jones 7566 7839

  scott 7788 7566

  adams 7876 7788

  ford 7902 7566

本文来源gao@!dai!ma.com搞$$代^@码!网!

  smith 7369 7902

  blake 7698 7839

  allen 7499 7698

  ward 7521 7698

  martin 7654 7698

  turner 7844 7698

  james 7900 7698

  clark 7782 7839

  miller 7934 7782

  14 rows selected.

  sql>

从查询结果中可以看出,由于jones、blake、clark的上司是king,所以jones等mgr(经理编号)=king的empno号,即king的直接下级是jones、blake、clark,因为他们的mgr与king的empno一样。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:ORACLE中数据递归查询遍历sql语句

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址