gpt4 book ai didi

oracle 层次化查询(行政区划三级级联)

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章oracle 层次化查询(行政区划三级级联)由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

前提:  数据库表DM_xzqh样例(部分):  。

复制代码代码如下

DM MC  230000 黑龙江省  230100 哈尔滨市  230101 市辖区  230102 道里区  232700 大兴安岭  230103 南岗区  230104 道外区  230108 平房区  230109 松北区  230110 香坊区  230111 呼兰区  230112 阿城区  230123 依兰县  238000 农垦分局  230124 方正县  230125 宾县  230126 巴彦县  230127 木兰县  230128 通河县  230129 延寿县  230182 双城市  230183 尚志市  。

现在将上面的行政区划按代码分为三个级别:省(后四位为0)/市(后两位为0)/县,同时分别标出他们的级别,这样的话,便于后期根据不同的级别查询。 首先,根据上面表拓展出新的一行sjbm,该行用于表示该行政区划所属的上级行政区划。具体代码如下:  。

复制代码代码如下

select t.dm,t.mc,case  when substr(t.dm,3)='0000' then 1  when substr(t.dm,5)='00' then to_number(substr(t.dm,1,2)||'0000')  when substr(t.dm,5)!='00' then to_number(substr(t.dm,1,4)||'00')  else 0  end sjbm from dm_xzqh t  。

结果如下:  序号 DM MC SJBM  1 230000 黑龙江省 1  2 230100 哈尔滨市 230000  3 230101 市辖区 230100  4 230102 道里区 230100  5 232700 大兴安岭 230000  6 230103 南岗区 230100  7 230104 道外区 230100  8 230108 平房区 230100  9 230109 松北区 230100  10 230110 香坊区 230100  11 230111 呼兰区 230100  12 230112 阿城区 230100  13 230123 依兰县 230100  14 238000 农垦分局 230000  15 230124 方正县 230100  16 230125 宾县 230100  17 230126 巴彦县 230100  18 230127 木兰县 230100  19 230128 通河县 230100  20 230129 延寿县 230100  21 230182 双城市 230100  22 230183 尚志市 230100  然后,就可以利用oracle的层次关系将该查询出的数据分级了,具体代码如下:  。

复制代码代码如下

select level,dm,mc,sjbm from  (select t.dm,t.mc,case  when substr(t.dm,3)='0000' then 1  when substr(t.dm,5)='00' then to_number(substr(t.dm,1,2)||'0000')  when substr(t.dm,5)!='00' then to_number(substr(t.dm,1,4)||'00') end sjbm from dm_xzqh t)  [where level=2 ]--该条件语句用于查询具体的每一个级别的行政区划  start with sjbm=1  connect by prior dm=sjbm  [order by level];  。

结果如下:  序号 level DM MC SJBM  1 1 230000 黑龙江省 1 //省 ,level->1  2 2 230100 哈尔滨市 230000//市,level->2  3 3 230101 市辖区 230100//县,level->3  4 3 230102 道里区 230100  5 3 230103 南岗区 230100  6 3 230104 道外区 230100  7 3 230108 平房区 230100  8 3 230109 松北区 230100  9 3 230110 香坊区 230100  10 3 230111 呼兰区 230100  11 3 230112 阿城区 230100  12 3 230123 依兰县 230100  13 3 230124 方正县 230100  14 3 230125 宾县 230100  15 3 230126 巴彦县 230100  16 3 230127 木兰县 230100  17 3 230128 通河县 230100  18 3 230129 延寿县 230100  19 3 230182 双城市 230100  20 3 230183 尚志市 230100  21 3 230184 五常市 230100  22 2 232700 大兴安岭地区 230000 。

最后此篇关于oracle 层次化查询(行政区划三级级联)的文章就讲到这里了,如果你想了解更多关于oracle 层次化查询(行政区划三级级联)的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com