开发学院数据库Oracle Oracle兼容之层次查询:层次查询高级特性分析 阅读

Oracle兼容之层次查询:层次查询高级特性分析

 2008-09-04 12:50:44 来源:WEB开发网   
核心提示: 查询结果为:LEVELPATH_A2PATH_A1PATH_PPATH_CAAPC3/0/0/1/0/0/1/0/1/11/1/11/11111111112/0/1/0/1/0/1/1/11111113/0/1/1/0/1/1/0/1/11/1/11/11111111111/1/1/0/1

查询结果为:

  LEVEL
PATH_A2PATH_A1PATH_PPATH_CAAPC3/0/0/1/0/0/1/0/1/11/1/11/11111111112/0/1/0/1/0/1/1/11111113/0/1/1/0/1/1/0/1/11/1/11/11111111111/1/1/0/111013/1/0/1/1/0/1/0/1/11/1/11/11111111112/1/1/1/1/0/1/1/11111113/1/1/1/1/1/1/0/1/11/1/11/1111111111

其层次结构图如图4所示。

Oracle兼容之层次查询:层次查询高级特性分析

从结果的路径信息可以看出,connect by查询的直接数据集是都满足t1.a=t2.a的条件,但是路径中有t1.a=0的情况,也就是说,采用的是第3种处理方式:connect by查询的数据集不是σt1.a=t2.a and t1.a=1(t1×t2)也不是t1×t2,而是σt1.a=t2.a(t1×t2)。语句2可以等价于查询Select …… from (select …… from t1,t2 where t1.a=t2.a) where t1.a=1 connect by prior c=p start with p=0;

对于用and连接起来的单个逻辑表达式涉及到单表和多表的where语句,在层次查询时,将涉及多表的逻辑表达式作为connect by之前的连接条件使用,而余下的作为connect by查询之后的过滤条件使用。

简单情况4

情况4讨论由OR连接不同类型子逻辑表达式的WHERE语句的情况。

语句4:

   Selectlevel,
  sys_connect_by_path(t2.a,'/')path_a2,
  sys_connect_by_path(t1.a,'/')path_a1,
  sys_connect_by_path(p,'/')path_p,
  sys_connect_by_path(c,'/')path_c,t2.a,t1.a,p,c
  fromt1,t2
  wheret1.a=t2.aort1.a=1
  connectbypriorc=pstartwithp=0andt1.a=1andt2.a=0;

上一页  2 3 4 5 6 7 8 9 10  下一页

Tags:Oracle 兼容 层次

编辑录入:爽爽 [复制链接] [打 印]
[]
  • 好
  • 好的评价 如果觉得好,就请您
      0%(0)
  • 差
  • 差的评价 如果觉得差,就请您
      0%(0)
赞助商链接