巧用SQL中的WITH(樹型結構資料的查詢)

2021-05-21 18:03:58 字數 1113 閱讀 1632

如果表中存放的資料是樹形結構,當知道某乙個節點的值時,同時想取得它所有子節點的資料。

表結構:

表中存放的是部門組織結構, bmn_cd部門,ssk_kaiso_lv是階層,bmn_mkj部門名稱,joi_kaiso_lv上位階層,joi_bmn_cd上位部門。

檢索sql :

with moduals (bmn_cd, ssk_kaiso_lv, bmn_mkj, bmn_nm_ryks, ski_***, joi_kaiso_lv, joi_bmn_cd) as (select

t130a.bmn_cd,

t130a.ssk_kaiso_lv,

t130a.bmn_mkj,

trim(t130a.bmn_nm_ryks) bmn_nm_ryks,

t130a.ski_***,

t130a.joi_kaiso_lv,

t130a.joi_bmn_cd

from

t130 t130a

where

t130a.bmn_cd = 'b00011'

andunion all

select

t130b.bmn_cd,

t130b.ssk_kaiso_lv,

t130b.bmn_mkj,

trim(t130b.bmn_nm_ryks) bmn_nm_ryks,

t130b.ski_***,

t130b.joi_kaiso_lv,

t130b.joi_bmn_cd

from

t130 t130b

inner join moduals t130c

on t130b.joi_kaiso_lv = t130c.ssk_kaiso_lv

and t130b.joi_bmn_cd = t130c.bmn_cd

) select moduals.bmn_cd,ssk_kaiso_lv, bmn_mkj, bmn_nm_ryks, ski_***, joi_kaiso_lv, joi_bmn_cd from moduals

【 where ………… 】

如果對檢索結果還有限制的話,可以加where語句進行限制。。。。。。。。

檢索結果:

樹型資料結構SQL語句的寫法

在乙個關聯式資料庫中,可以表現分等級的資訊。建立的表結構如下 create table employee emp id number 4 constraint emp pk primary key,fname varchar2 15 not null,lname varchar2 15 not nu...

樹型結構的設計

最近做專案,經常用的樹型結構,對樹型表的設計有了新的理解.原來設計的樹型表結構 體現了一種遍歷的方式.用編碼控制相應的父子關係,雖然這樣也體現了關係,但在做轉移子樹時就相當麻煩了,而且邏輯關係也不清晰.這次的設計 改用父節點控制父子關係,同時提供乙個排序號,提供一種遍歷,可以增加多個字段,來擴充套件...

sql樹型應用總結

測試資料 if object id t is not null drop table t create table t id int,pid int,name varchar 10 insert into t select 1,0,a union all select 2,1,b union all...