將行政區域匯入SQL SERVER

2021-08-27 13:13:17 字數 2126 閱讀 4101

步驟如下:

一、到國家統計局**,找到縣及縣以上行政區劃頁面。

我找到的是這個:

然後將頁面上的**直接複製貼上到記事本,儲存為 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)

code char(6)

name nvarchar(50)

parentid int

所以現在需要將資料再從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 [dbo].[region] set parentid=c.id

from [dbo].[region],[dbo].[region] b,[dbo].[region] c

where [dbo].[region].parentid=b.id and b.parentid=c.id

and b.name in('市轄區','縣') ;

delete from [dbo].[region] where name in('市轄區','縣') ;

根據Excel匯入樹形部門行政區域

根據excel提供的內容進行行政區域的匯入 通過excel工具類獲取workbook workbook workbook excelutil.load file sheet sheet workbook.getsheetat 0 int lastrownum sheet.getlastrownum ...

中國5級行政區域mysql庫

爬取國家統計局官網的行政區域資料,包括省市縣鎮村5個層級 港澳地區的資料只有3級 台灣地區4級 cnarea20191031.7z是爬取2019年的資料,截止2019年10月31日.全部共783562條 港澳台資料共78812條,其中 改動 create table cnarea 2018 id m...

根據經緯度座標點返回所在行政區域實現

public result getposition double longitude,double latitude string address null for center center centers if stringutils.isempty address break return n...