
树形查询
jgmydsai
Oracle优化专家,专注于数据库迁移、SQL优化和ETL领域,拥有超过20年的数据库开发经验。擅长数据库迁移、数据仓库建模及ETL过程实现,曾主导多个大型企业的数据中台建设和系统迁移项目,涵盖金融、制造等多个行业。具备丰富的数据库迁移经验,能够高效完成跨平台数据迁移和系统调优,尤其在复杂SQL优化和数据库性能调优方面表现突出。
展开
-
树形查询简介
树形查询语句如下SELECT empno, ename, mgr, PRIOR empno AS prior_empno,LEVEL FROM emp START WITH mgr IS NULLCONNECT BY PRIOR empno = mgr;EMPNOENAMEMGRPRIOR_EMPNO LEV原创 2013-11-07 10:12:45 · 1065 阅读 · 0 评论 -
小九九
with l as (select level as lv from dual connect by level <= 9),m as (select a.lv as lv_a, b.lv as lv_b, to_char(b.lv) || ' × ' || to_char(a.lv) || ' = ' || rpad(to_char(a原创 2013-08-23 17:03:34 · 889 阅读 · 0 评论 -
用with模拟树形查询
有人问 表 父id 子ID 知道 子值 ,怎么把所有的子都选出来 ,这个当然用树形查询就可以了。可他跟着来了一个db2那试下with语句吧WITH X(EMPNO,MGR,ENAME,LV) AS (SELECT EMPNO, MGR, ENAME, 1 AS LV FROM EMP WHERE MGR IS NULL UNION ALL SELE原创 2014-05-08 10:35:29 · 738 阅读 · 1 评论 -
dbms_aw.eval_number 解析算术表达式
教主 帮朋友问个问题 有个类似于撮合的系统随机取10个用户 要求他们的一个指标数之和等于100 这种需求能用sql搞定么? 由于不原创 2014-05-23 10:04:44 · 3473 阅读 · 0 评论 -
用树形函数计算零件数
样例数据如下:CREATE OR REPLACE VIEW t AS (SELECT 'B' a, 'A' b, 2 n FROM dual UNION ALL SELECT 'C' a, 'A' b, 4 n FROM dual UNION ALL SELECT 'D' a, 'B' b, 3 n FROM dual UNION ALL SELECT 'E' a, 'B' b,原创 2014-09-01 21:02:04 · 1166 阅读 · 0 评论 -
枚举上月的日期
有学生提这个需求,这个太好实现了,肯定是没好好听课SELECT last_m + (LEVEL - 1) AS d FROM (SELECT add_months(trunc(SYSDATE, 'mm'), -1) last_m, trunc(SYSDATE, 'mm') m FROM dual)CONNECT BY LEVEL <= m原创 2014-10-15 17:26:53 · 921 阅读 · 0 评论 -
枚举给定期间内的季度信息
要求枚举给定时段内的季度信息,原数据模拟如下这种需求可以通过connect by 语句来分拆,只要计算出中间间隔的季度即可SELECT t.id, t.开始年, t.开始季度, t.结束年, t.结束季度, lv, to_char(d3, 'yyyy') AS 枚举年, to_char原创 2014-12-23 15:21:00 · 704 阅读 · 0 评论 -
用树形+eval_number进行计算
有这样一个需求,对于各行数据要求 1+2 1+2+3 1+2+3+4 —– 2+3 2+3+4 —- 28+29 上面的1 2 3 是行号 我们以emp表为例WITH x0 AS (SELECT rownum AS rn, sal FROM (SELECT sal FROM emp ORDER BY sal))SELECT sal, dbms_aw.eval_number(s原创 2015-09-10 09:53:48 · 1766 阅读 · 0 评论