樹型結構start with..........connect by prior

pwz1688發表於2009-03-30
剛剛一同事問我,知道一個行政區劃程式碼,如何求這個行政區劃的上級和下級所有行政區劃,腦海中有start with...prior這種樹型求法,檢視之前的筆記後,拿監管的pa50做測試如下:[@more@]

一.求株洲市的上級行政區劃

select a.aab301,a.apa133
from pa50 a
start with a.aab301 = '430200'
connect by a.aab301 = prior a.apa132;

--執行結果:

AAB301 APA133

1 430200 株洲市
2 430000 湖南省
3 100000 全國

二.求株洲市的下級行政區劃

select a.aab301,a.apa133
from pa50 a
start with a.aab301 = '430200'
connect by a.apa132 = prior a.aab301

--執行結果:

AAB301 APA133

1 430200 株洲市
2 430225 株洲市炎陵縣
3 430203 株洲市蘆淞區
4 430299 株洲市市本級
5 430202 株洲市荷塘區
6 430204 株洲市石峰區
7 430211 株洲市天元區
8 430221 株洲市株洲縣
9 430223 株洲市攸縣
10 430224 株洲市茶陵縣
11 430281 株洲市醴陵市
12 430201 株洲市市轄區

附:pa50的表結構

SQL> desc pa50;
Name Type Nullable Default Comments
------ ------------- -------- ------- --------------------------------------------------------------------------
AAB301 VARCHAR2(6) Y 本節點ID
APA132 VARCHAR2(6) Y 父節點
APA133 VARCHAR2(100) Y 行政區劃名
APA134 NUMBER(1) Y 節點級別(勞動部 1 各省市 2 級 地級市 3 ,縣,市轄區 4
APA135 VARCHAR2(3) Y 地區標誌

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/21251711/viewspace-1019593/,如需轉載,請註明出處,否則將追究法律責任。

相關文章