Oracle的Connect By用法及理解

语法:

      SELECT ... FROM

           [WHERE condition]                             --过滤某些节点

           [ START WITH [nocycle] start_condition]    --定义查询的起点, 可以使用子查询

          CONNECT BY [[nocycle] PRIOR COLUMN1 = COLUMN2 [AND ...]];   --定义父子关系

          order [ sibilings ] by ...

例1:

找出101雇员, 及其全下属/上司

 select *
   from myemp
  start with employee_id = 101
connect by prior employee_id = manager_id;  -- 找下属
-- connect by employee_id = prior manager_id;  --找上司

prior在等号哪边,表示哪边是"我的"

找下属:  "我的"employee_id = "别人的"manager_id --> 找出我的下属  (向下查询)

找上司: employee_id = prior manager_id 别人的工号 = 我的经理编号 --> 别人是我的经理 & 别人是我经理的经理 --> 我的上司们

注意,level伪列只能和connect by子句结合使用,否则Oracle会返回错误 O

你可能感兴趣的:(Oracle,PLSQL,Oracle,Connect,by)