求中国行政区划代码

求中国行政区划代码,第1张

中华人民共和国行政区划代码

中华人民共和国行政区划代码

国家基础地理信息系统地形数据库境界和居民地要素执行国家标准《中华人民共和国行政区划代码》(GB

2260-1995),并根据需要扩充了部分代码。代码的结构如下:

全国省级行政区划代码一览表:

代码省(自治区、直辖市)

110000北京市

120000天津市

130000河北省

140000山西省

150000内蒙古自治区

210000辽宁省

220000吉林省

230000黑龙江省

310000上海市

320000江苏省

330000浙江省

340000安徽省

350000福建省

360000江西省

370000山东省

410000河南省

420000湖北省

430000湖南省

440000广东省

450000广西壮族自治区

460000海南省

500000重庆市

510000四川省

520000贵州省

530000云南省

540000西藏自治区

610000陕西省

620000甘肃省

630000青海省

640000宁夏回族自治区

650000新疆维吾尔自治区

710000台湾省

810000香港特别行政区

910000澳门特别行政区(国家基础地理信息系统扩充代码)

一、到国家统计局网站,找到县及县以上行政区划页面。

我找到的是这个:http://www.stats.gov.cn/tjbz/xzqhdm/t20130118_402867249.htm

然后将页面上的代码直接复制粘贴到记事本,保存为 e:\temp\region.txt。

二、硬着头皮用SQL SERVER Management Studio导进去。

导入的时候注意一点,就是要在目标表里设置一个标识列。

三、生成区域表

在这里导进去的目标表,只是一个临时用的中间表:region_tmp,我真正要的,是表region。

中间表region_tmp的结构:

region_tmp

======================

id int identity(1,1)

cn varchar(50)

导进去以后,数据如下:

而我想要的区域表region

region

=========================

id int identity(1,1)

codechar(6)

name nvarchar(50)

parentId int

所以现在需要将数据再从region_tmp ==>region。

在导入的时候,之所以要设置一个标识列,就是用来区分邮政编码和地名。在region_tmp,奇数行都是编码,偶数行则是地名,因此可以通过以下语句将编码和地名都写进region的同一行:

INSERT INTO [dbo].[Region]

([code]

,[name]

,[parentId])

SELECT a.cn,b.cn,0

FROM region_tmp a,region_tmp b

WHERE b.id=a.id+1

and (a.id % 2) = 1

四、修改区域表

现在要修改字段region.parentId。就是每个地名记录要有一个父ID,在使用的时候好排序。比如广州的父ID是广东省,天河区的父ID是广州。

--设置市级地名的父ID

UPDATE [dbo].[region]

SET parentid=b.id

FROM [region],[region] b

WHERE LEFT([region].code,2)=LEFT(b.code,2)

AND RIGHT([region].code,4)<>'0000' AND RIGHT([region].code,2)='00'

AND RIGHT(b.code,4)='0000'

--设置县级地名的父ID

UPDATE [dbo].[region]

SET parentid=b.id

FROM [region],[region] b

WHERE LEFT([region].code,4)=LEFT(b.code,4)

AND RIGHT([region].code,2)!='00'

AND RIGHT(b.code,2)='00'

update 行政区划 set 户数=A.户数,人数=A.人数 FROM

(select left(国际编码,9) AS 国际编码 ,

户数=sum(户数),人数=sum(人数)

from 行政区划 WHERE len(国际编码)=12 and left(国际编码,9)='370983002'

GROUP BY left(国际编码,9)) A WHERE A.国际编码=行政区划.国际编码 AND 行政区划.国际编码='370983002'

--这样才对 这样的话只扫描了一次表,统计了两个东西,不过你的国际编码要是有索引的话,应该要好点


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/10654892.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存