組織階層情報の取得
- 1テーブル内で、 [自身の組織コード] と [親の組織コード] を別カラムで保持するような構造のテーブルで有効
- Oracleの機能を使って親子関係を簡単に取得する
- 階層が変動的でも柔軟に出力してくれるので便利
SQL
/* 組織階層情報取得 */
select
lpad(' ', 2*level) || t1.ORG_NAME as LEVEL_DISP -- 階層レベルに合わせて高さを調整
,substr(sys_connect_by_path(
t1.ORG_NAME,' > '), 4 ) as TREE -- 上位階層から並べて表示
,connect_by_isleaf as ISLEAF -- リーフか否か
,level as NODE_LEVEL -- 階層レベルを数値で表示
from
ORG_PARENT_CHILD t1
start with
t1.PARENT_ORG_CD = '20000000'
connect by nocycle prior
t1.ORG_CD = t1.PARENT_ORG_CD
order by
t1.ORG_CD
/