您的位置:首页 > 数据库 > Oracle

oracle 的start with connect by prior 的用法

2018-01-26 16:31 741 查看
1.   select sys_connect_by_path(t.dept_id,'/') from syc_smg_dpt t start with t.dept_id='RT_DISTRICT_JN_01' connect by prior dept_id = parent_dept_id -------以'RT_DISTRICT_JN_01' 遍历其作为父节点的所有值

结果:

/RT_DISTRICT_JN_01

/RT_DISTRICT_JN_01/RT_GROUP_JN_CAR1

/RT_DISTRICT_JN_01/RT_GROUP_JN_CAR2

/RT_DISTRICT_JN_01/RT_GROUP_JN_XYDM1_1

/RT_DISTRICT_JN_01/RT_GROUP_JN_XYDM1_2

/RT_DISTRICT_JN_01/RT_GROUP_JN_XYDM2_1

/RT_DISTRICT_JN_01/RT_GROUP_JN_XYDM3_1



2. select max(sys_connect_by_path(t.dept_id,'/')) from syc_smg_dpt t start with t.dept_id = 'RT_DISTRICT_JN_01' connect   by prior dept_id = parent_dept_id; ---取最大值

结果: /RT_DISTRICT_JN_01/RT_GROUP_JN_XYDM3_1  

3.   select sys_connect_by_path(t.dept_id,'/') from syc_smg_dpt t start with t.dept_id='RT_DISTRICT_JN_01' connect by prior parent_dept_id = dept_id;

结果: /RT_DISTRICT_JN_01

/RT_DISTRICT_JN_01/RT_CHARGER_JN_01

/RT_DISTRICT_JN_01/RT_CHARGER_JN_01/RT_MANAGER_01

/RT_DISTRICT_JN_01/RT_CHARGER_JN_01/RT_MANAGER_01/PA012_RT_SYSTEM_01

4.   select max(sys_connect_by_path(t.dept_id,'/')) from syc_smg_dpt t start with t.dept_id = 'RT_DISTRICT_JN_01' connect by prior parent_dept_id = dept_id;

结果:/RT_DISTRICT_JN_01/RT_CHARGER_JN_01/RT_MANAGER_01/PA012_RT_SYSTEM_01
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: