id1,
org_name,
org_id ,
parent_org_id
id2,
org_name,
org_id ,
parent_org_id
變為id1 org_id1, org_name1,org_id2,org_name2,org_id3, org_name3...
id2 org_id1, org_name1,org_id2,org_name2,org_id3, org_name3...
將自己部門的完整資訊用一條記錄顯示。
select
t.id,
connect_by_isleaf , --是否為最葉子節點
connect_by_root t.nodename, --根節點節點名字
ltrim(sys_connect_by_path(t.nodename,'-'),'-'), --連線各節點
level --層
from treetest t
start with fatherid is null --選擇根節點
connect by prior id=fatherid --prior在前,表示從根節點開始遍歷,connect by id=prior fatherid表示從葉子節點開始遍歷
order by t.id
第一步,將完整路徑拼接到一起
( select org_id,
org_name,
ltrim (sys_connect_by_path (org_name, '->'), '->')
org_tree_path,
level treelevel
from sys_org
start with org_id = 0
connect by prior org_id = parent_org_id)
第二步,拆分完整路徑,分配到各個字段(這裡取5層為例)
/* formatted on 2011-11-21 15:40:49 (qp5 v5.114.809.3010) */
create or replace force view aics.v_oper_org_tree
(op_id,
treelevel,
org_name_1,
org_name_2,
org_name_3,
org_name_4,
org_name_5)as
select a.op_id,
treelevel,
case treelevel
when 1
then
org_tree_path
else
substr (org_tree_path, 1, instr (org_tree_path, '->') - 1)
endorg_name_1,
case treelevel
when 1
then
null
when 2
then
substr (org_tree_path, instr (org_tree_path, '->') + 2)
else
substr (org_tree_path,
instr (org_tree_path, '->') + 2,
instr (org_tree_path,
'->',
1,2)
- instr (org_tree_path, '->')
- 2)
endorg_name_2,
case treelevel
when 1
then
null
when 2
then
null
when 3
then
substr (org_tree_path, instr (org_tree_path,
'->',
1,2)
+ 2)
else
substr (org_tree_path, instr (org_tree_path,
'->',
1,2)
+ 2, instr (org_tree_path,
'->',
1,3)
- instr (org_tree_path,
'->',
1,2)
- 2)
endorg_name_3,
case treelevel
when 1
then
null
when 2
then
null
when 3
then
null
when 4
then
substr (org_tree_path, instr (org_tree_path,
'->',
1,3)
+ 2)
else
substr (org_tree_path, instr (org_tree_path,
'->',
1,3)
+ 2, instr (org_tree_path,
'->',
1,4)
- instr (org_tree_path,
'->',
1,3)
- 2)
endorg_name_4,
case treelevel
when 1
then
null
when 2
then
null
when 3
then
null
when 4
then
null
when 5
then
substr (org_tree_path, instr (org_tree_path,
'->',
1,4)
+ 2)
else
substr (org_tree_path, instr (org_tree_path,
'->',
1,4)
+ 2, instr (org_tree_path,
'->',
1,5)
- instr (org_tree_path,
'->',
1,4)
- 2)
endorg_name_5
from sys_oper a,
( select org_id,
org_name,
ltrim (sys_connect_by_path (org_name, '->'), '->')
org_tree_path,
level treelevel
from sys_org
start with org_id = 0
connect by prior org_id = parent_org_id) b
where a.org_id = b.org_id;
select
t.id,
connect_by_isleaf , --是否為最葉子節點
connect_by_root t.nodename, --根節點節點名字
ltrim(sys_connect_by_path(t.nodename,'-'),'-'), --連線各節點
level --層
from treetest t
start with fatherid is null --選擇根節點
connect by prior id=fatherid --prior在前,表示從根節點開始遍歷,connect by id=prior fatherid表示從葉子節點開始遍歷
order by t.id
angular子路由(插座為父子關係)
上面 中子路由配置好之後,如何將子路由對應的那兩個元件顯示出來呢?還是需要用到插座即routeroutlet,寫了routeroutlet後,這兩個元件就會顯示在插座後面。布局檔案的 如下 注意 子路由對應的html中的路徑寫法 中的.表示在它的父元件中開始尋找路徑,父元件為productcompo...
父子關係的陣列和樹形結構資料相互轉化
description 父子關係的陣列轉換成樹形結構資料 param data returns export function translatedatatotree data translator parent,children return parent description 樹形結構資料轉換...
js將有父子關係的資料轉換成樹形結構資料
js將有父子關係的資料轉換成樹形結構資料 比如如下基本資料 let alldatas 需要轉換成如下資料格式,如下 如上id為8的父節點就是id為3的,而id為3的父節點為1,但是父節點目前沒有,所以id為3就是頂級節點了。同理其他的也是一樣的道理 js 如下 屬性配置設定 let attr fun...