oracle高级查询用法
2017-10-20 00:00
393 查看
层次化查询
有下图这样一张表,它记录的是员工的一些信息,m_id该员工的上级的id,例如James就是Ron的上级;那么我们如何找出他们的层级关系。
oracle为我们提供的Select语句的Connect by和start with子句可以执行层次查询;
语法如下:
select [level], column, expression, ... form table [where where_caluase] [start with start_condtion connect by prior prior_condition] --level 是一个伪列,代表了第几层,对于本表的CEO,自然是第一层 --start_condtion 定了层次化查询的起点,当编写层次化查询时必须指定start with子句; --prior_condition 定义了父行和子行之间的关系,当编写层次化查询时必须定义connect by prior子句
实例:
--employee_id 就是表中的id --manager_id 就是表中的m_id select level, employee_id, manager_id, first_name, last_name from more_employees start with employee_id =1 connect by prior employee_id = manager_id order by level;
select first_name || ' ' || last_name as employee from more_employees start with first_name = 'Susan' connect by prior employee_id = manager_id;
相关文章推荐
- Oracle高级查询,over 用法
- Oracle 查询高级用法
- ORACLE 007 --5 group by 的用法及增强、高级子查询
- Oracle 查询高级用法
- Oracle高级查询,over 用法
- Oracle高级查询,over 用法
- Oracle 高级查询-【联合语句】【联合查询】【层次查询】
- 笔记:Oracle SQL 高级查询简介 (3) MODEL子句,PIVOT与UNPIVOT子句
- (转)sql多表查询,Oracle、mysql的用法区别
- oracle 高级查询 OVER(PARTITION BY)
- oracle中rownum的用法,查询某个区间的数据
- 小白笔记-Oracle高级查询
- Oracle高级查询
- Oracle in 引号连接的子查询用法
- oracle之高级查询、子查询
- Oracle ROWNUM用法和分页查询总结
- Oracle高级查询,事物,过程及函数
- Oracle高级查询、事物、过程及函数
- Oracle高级查询
- Oracle层级查询语句(hierarchical query)connect by 用法详解