5,889
社区成员
发帖
与我相关
我的任务
分享
数据库表如下:
area_id area_name area_level parent_id
1 辽宁 省级 null
2 吉林 省级 null
3 黑龙江 省级 null
4 沈阳 市级 1
5 大连 市级 1
6 鞍山 市级 1
7 长春 市级 2
8 延边 市级 2
9 哈尔滨 市级 3
10 大庆 市级 3
11 佳木斯 市级 3
12 伊春 市级 3
13 瓦房店 县级 5
14 普兰店 县级 5
15 庄河 县级 5
16 甘井子区 区级 5
17 砬子山村 村级 16
查询的结果如下:
area_id area_name area_level root
1 辽宁 省级 1
2 吉林 省级 2
3 黑龙江 省级 3
4 沈阳 市级 1
5 大连 市级 1
6 鞍山 市级 1
7 长春 市级 2
8 延边 市级 2
9 哈尔滨 市级 3
10 大庆 市级 3
11 佳木斯 市级 3
12 伊春 市级 3
13 瓦房店 县级 1
14 普兰店 县级 1
15 庄河 县级 1
16 甘井子区 区级 1
17 砬子山村 村级 1
WITH TMP(ID,NAME,LEVEL,PARENT) AS (
SELECT AREA_ID,AREA_NAME,AREA_LEVEL,COALESCE(PARENT_ID,AREA_ID,PARENT_ID) FROM DB2ADMIN.PROVINCECITY WHERE PARENT_ID IS NULL
UNION ALL
SELECT AREA_ID,AREA_NAME,AREA_LEVEL,PARENT_ID FROM TMP T,DB2ADMIN.PROVINCECITY P WHERE P.PARENT_ID=T.ID
)
SELECT * FROM TMP