微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

一些oracle 高级查询语句

一。Oracle中的select语句可以用start with ... connect by prior ...子句实现递归查询,connect by 是结构化查询中用到的,

基本语法是:

select ... from
where <过滤条件,用于对返回的所有记录进行过滤>
start with <根结点的限定语句,当然可以放宽限定条件,以取得多个根结点,实际就是多棵树>
connect by [prior] <连接条件,其中用prior表示上一条记录,比如:connect by prior t.id = t.parent_id就是说上一条记录的id 是本条记录的parent_id,即本记录的父亲是上一条记录>

假设表结构:

branchid,subcode,subname. 其中branchid是subcode代表的机构的父机构

查询7025分公司的所有分支机构

select WMSYS.WM_CONCAT(subcode) from company t start with subcode=7025 connect by prior t.subcode=t.branchid;

获取到:7025,501,502,503,504,505;WMSYS.WM_CONCAT是将所有结构用逗号相连


二。计算同比环比


lead lag 不想写了

原文地址:https://www.jb51.cc/oracle/209727.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐