[size=small]
select mlk_flag_2013.ID_, qnsj_
from (select case grouping(t.levels) when 1 then '小计' else to_char(ltrim(regexp_substr(t.levels, ';[^;]*$', 1, 1), ';')) end ID_,
case grouping(t.levels) when 1 then ';小计' else to_char(t.levels) end levels
from (select frm, sys_connect_by_path(frm, ';') levels from mlk_flag_2013 where time_ = '201312'
start with pid_ = '103068526' connect by prior frm = pid_) t
group by rollup(t.levels)) mlk_flag_2013
left join (select case grouping(t.level1) when 1 then '小计' else to_char(t.level1) end level1,
t.level2,
t.level3,
sum(t_jh_cpxssr.qnsj_) qnsj_
from (select * from t_jh_cpxssr where time_ = '2013') t_jh_cpxssr
left join (select frm,
ltrim(regexp_substr(sys_connect_by_path(frm,';'),';[^;]*',1,1),';') level1,
ltrim(regexp_substr(sys_connect_by_path(frm,';'),';[^;]*',1,2),';') level2,
ltrim(regexp_substr(sys_connect_by_path(frm,';'),';[^;]*',1,3),';') level3
from mlk_flag_2013 where time_ = '201312'
start with pid_ = '103068526' connect by prior frm = pid_) t on t_jh_cpxssr.comp_code_ = t.frm
group by rollup(t.level1, t.level2, t.level3)) SUM_2013 on mlk_flag_2013.levels =
rtrim(';' || SUM_2013.level1 || ';' || SUM_2013.level2 || ';' || SUM_2013.level3, ';')
[/size]
分享到:
相关推荐
`LEVEL`是Oracle中的一个伪列,常用于递归查询,而`CONNECT BY`则用于创建树形结构。在时间操作中,可以结合`SYSDATE`函数和算术运算来加减时间。例如,减少一天可以用`sysdate - 1`,减少半天可以用`sysdate - (1/2...
### Oracle开发DBA SQL编写规范 #### 1. 引言 本文档旨在为Oracle数据库开发者提供一套标准化的SQL及PL/SQL编写指南,通过规范化SQL及PL/SQL的编写方式,提高代码的可读性、可维护性和执行效率。本规范适用于所有...
在Oracle数据库环境中,"通过父编码信息给子节点分组"通常涉及到树形结构数据的处理,这在很多业务场景中都很常见,如组织架构、产品分类、地区层级等。这种问题的关键在于如何利用数据库的查询功能来构建并展现这种...
- 树形查询:介绍如何在数据库中查询层次数据。 以上详细知识点是对【部分内容】中提供的主题的具体阐述。这些知识点构成了SQL高级进阶学习的完整体系,覆盖了数据查询、数据处理、多表操作、字符串和数值处理、...
2. **结果集管理**:执行查询后,可以以表格、树形或文本形式查看结果,支持排序、过滤、分组和计算,便于数据分析。 3. **数据库连接**:支持多种数据库系统,如MySQL、Oracle、SQL Server、PostgreSQL等,只需...
这个函数通常用于构建树形或层级关系的数据集。例如: ```sql SELECT ID, NAME, LTRIM(MAX(SYS_CONNECT_BY_PATH(ROLE, ',')), ',') FROM ( SELECT ROW_NUMBER() OVER (PARTITION BY TABLE1.ID ORDER BY NAME) RN,...
│ │ 8.2.2 树形数据深度排序处理示例(模拟单编号法).sql │ │ 8.2.2 树形数据深度排序处理示例(递归法).sql │ │ 8.2.3 查找指定节点的所有子节点的示例函数.sql │ │ 8.2.4 查找指定节点的所有父节点的示例...
Oracle数据库是全球广泛使用的大型关系型数据库管理系统,其在企业级应用中占据着重要的地位。在Oracle的开发技术中,涵盖了多个关键知识点,这些知识点对于理解Oracle的编程规范、提高开发效率以及解决复杂数据问题...
3. **对象浏览器**:以树形结构展示数据库中的所有对象,如表、视图、存储过程、函数、触发器等,便于快速定位和操作。 4. **数据查看与编辑**:允许直接查看和编辑数据库中的数据,支持表格形式和SQL查询方式,还...
基本方法.sql │ ├─第08章 │ │ 8.1.2 树形数据分级汇总示例.sql │ │ 8.1.3 树形数据编号重排的通用存储过程.sql │ │ 8.1.3 树形数据编号重排示例.sql │ │ 8.1.4 实现编码规则...
- 索引使用树形结构(如B树)来加速数据检索。通过索引,可以快速定位到所需的数据行,从而提高查询效率。 #### 十八、存在测试 (EXISTS 和 NOT EXISTS) - `EXISTS` 和 `NOT EXISTS` 用于测试子查询是否返回至少一...
7. **连接(Connect By)**: Oracle特有的功能,用于构建层次结构或树形结构的数据。例如,`SELECT level, column1 FROM table START WITH condition CONNECT BY PRIOR column1 = column2`可遍历具有父子关系的记录...
1. **高级布局和控件**:利用高级布局管理器创建复杂的布局结构,掌握高级控件如树形视图、网格等的使用。 2. **PL/SQL编程**:深入理解PL/SQL语言,编写高效的业务逻辑和触发器。 3. **安全性**:设置用户权限,...
在Oracle数据库中,递归查询是一种强大的工具,用于处理层级数据结构,如组织结构、文件系统或树形关系。在本篇文章中,我们将探讨如何利用递归查询来查找父子兄弟节点,这对于理解和处理这类关系非常关键。 首先,...
Oracle提供了多种方法来实现这一目标,包括使用内置函数、PL/SQL过程以及一些高级特性。以下是对标题和描述中所涉及知识点的详细解释: 1. **concat() 函数**: Oracle中的`concat()`函数是最基本的字符串连接方法...
Oracle是世界上最广泛使用的商业关系型数据库管理系统之一,尤其在企业级应用中占据着主导地位。这份"Oracle培训资料"显然是一份旨在帮助学习者掌握Oracle数据库系统和SQL基础知识的教程。接下来,我们将深入探讨...
`CONNECT BY`用于建立树形连接,而`SYS_CONNECT_BY_PATH`则可以沿着这些连接路径收集数据。 以下是一个详细的步骤解释: 1. 使用`ROW_NUMBER () OVER (PARTITION BY…)`对每个股票代码创建组内序号。这是为了后续...
通过定义父节点和子节点之间的关系,可以轻松地构建出树形结构的数据。 - **Oracle用法**:使用`CONNECT BY PRIOR`子句来指定层次关系。 - **CONNECT_BY在DB2、SQL Server中的实现**:虽然不同数据库系统的实现方式...
5. **递归查询与WITH子句**:`WITH RECURSIVE`语句可以实现递归查询,特别适用于处理层次结构数据,如组织结构、层级菜单或树形数据。 6. **索引和优化**:特殊SQL技巧还包括有效地利用索引,创建复合索引、唯一...
1. **语法分析**:SQL语句首先要通过词法分析器(Tokenizer或Scanner)将输入的文本分解成一个个小的单元——词法单元(Token)。然后,语法分析器(Parser)根据预定义的语法规则,将这些词法单元组合成语法树,...