PL/SQL基础:阶层查询

ORACLE 10g新增了阶层查询操作符PRIOR,CONNECT_BY_ROOT

■PRIOR

阶层查询的CONNECY BY condition的条件式需要用到PRIOR来指定父节点,作为运算符,PRIOR和加(+)减(-)运算的优先级相同。

■阶层查询

语法:START WITH condition CONNECT BY NOCYCLE condition

START WITH 指定阶层的根

CONNECT BY 指定阶层的父/子关系

NOCYCLE 存在CONNECT BY LOOP的纪录时,也返回查询结果。

condition ... PRIOR expr = expr 或者 ... expr = PRIOR expr

例:

CONNECT BY last_name != 'King' AND PRIOR employee_id = manager_id ...
CONNECT BY PRIOR employee_id = manager_id and
PRIOR account_mgr_id = customer_id ...

■CONNECT_BY_ROOT

查询指定根的阶层数据。

■CONNECT BY子句的例子

通过CONNECT BY子句定义职员和上司的关系。

SQL>SELECT employee_id, last_name, manager_id
FROM employees
CONNECT BY PRIOR employee_id = manager_id;

EMPLOYEE_ID LAST_NAME MANAGER_ID
----------- ------------------------- ----------
101 Kochhar 100
108 Greenberg 101
109 Faviet 108
110 Chen 108
111 Sciarra 108
112 Urman 108
113 Popp 108
200 Whalen 101

时间: 2024-07-31 14:22:04

PL/SQL基础:阶层查询的相关文章

PL/SQL DEVELOPER中查询结果复制出来中文乱码如何解决

PL/SQL DEVELOPER中查询结果导出到EXCEL时中文显示正常,但直接复制出来中文显示为乱码,如何? 解决方案:切换到中文输入法状态,再复制,即可. 本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/database/Oracle/

sql基础--怎样查询单列数据

sql基础--怎样查询单列数据 select 指定列名 from 从表中 mysql> select name from products; +--------------------+ | name               | +--------------------+ | Bird bean bag toy  | | qunkanlu           | | qunkanlu 50 number | | hongqi             | +-----------------

pl/sql 基础---定义并使用变量!

pl/sql 基础---定义并使用变量! 在编写 pl/sql 程序时,可以定义变量和常量:在pl/sql 程序中包括有: ①标量类型 (scalar) ②复合类型 (composite) ③参照类型 (reference) ④lob (large object)   >标量(scalar)-- 常用类型 在编写 pl/sql 块时,如果要使用变量,需在定义部分定义变量. pl/sql 中定义变量和常量的语法如下:   标量定义的案例: ①定义一个变长字符串 v_ename   varchar2

PL/SQL用光标查询多条记录

PL/SQL光标为程序提供了从数据库中选择多行数据,然后对每行数据单独进行处理的方法,它为Oracle提供了一种指示和控制SQL处理的各个阶段的方法.我将认为您已经对PL/SQL有一定的了解.通过本文,您将学会:光标的创建 光标的处理 定义和使用光标属性 一. 什么是光标Oracle使用两种光标:显式光标和隐式光标.不管语句返回多少条纪录,PL/SQL为使用的每一条UPDATE.DELETE和INSERT等SQL命令隐式的声明一个光标.(要管理SQL语句的处理,必须隐式的给它定义一个光标.)用户

sql基础--怎样查询所有列数据

在数据库中需要检索所有列的数据,需要使用通配符 * 不建议 使用通配符 *,因为他要完全检索数据库,每一行,数据库的开销很大. 如果我们需要那列的数据,或者什么应用需求根据 select + 子句来完成查询或者说限制条件输出就可以了. mysql> select * from products; +------+-------+--------------------+ | id   | price | name               | +------+-------+---------

sql基础--怎样查询多列数据

select 指定列名,列名,列名 from 从表中 mysql> select id,price,name from products; +------+-------+--------------------+ | id   | price | name               | +------+-------+--------------------+ |    1 |  3.49 | Bird bean bag toy  | |    2 |  3.49 | qunkanlu  

PL/SQL --> 语言基础

--===================== -- PL/SQL --> 语言基础 --=====================       PL/SQL是过程化的SQL语言,是ORACLE对SQL语言的扩展,在普通SQL语句的基础上增加了编程语言的特点.使得该语言不仅具有过程编程语 言的特征,如循环.条件分支等.同时也具有对象编程语言的特征,如重载.继承等.     一.PL/SQL程序语言的组成     主要由块组成         一个块由三个基本部分组成:声明.执行体.异常处理   

[转贴]Oracle PL/SQL语言基础

oracle|sql语言 [转贴]Oracle PL/SQL语言基础 Oracle PL/SQL语言基础   PL/SQL是ORACLE对标准数据库语言的扩展,ORACLE公司已经将PL/SQL整合到ORACLE 服务器和其他工具中了,近几年中更多的开发人员和DBA开始使用PL/SQL,本文将讲述PL/SQL基础语法,结构和组件.以及如何设计并执行一个PL/SQL程序.    PL/SQL的优点    从版本6开始PL/SQL就被可靠的整合到ORACLE中了,一旦掌握PL/SQL的优点以及其独有

Oracle PL/SQL语言基础

oracle|sql语言 Oracle PL/SQL语言基础  2002-8-23   Oracle PL/SQL语言基础 PL/SQL是ORACLE对标准数据库语言的扩展,ORACLE公司已经将PL/SQL整合到ORACLE 服务器和其他工具中了,近几年中更多的开发人员和DBA开始使用PL/SQL,本文将讲述PL/SQL基础语法,结构和组件.以及如何设计并执行一个PL/SQL程序. PL/SQL的优点 从版本6开始PL/SQL就被可靠的整合到ORACLE中了,一旦掌握PL/SQL的优点以及其独