网上下的全国 省市区 数据比较乱(http://qq704855854.blog.163.com/blog/static/19111835520142319275411/)。导入后,进行整理。

SQL数据文件: http://files.cnblogs.com/newsea/省市五级原始数据.rar

新建两个函数:

---去除括号
CREATE function [dbo].[tidy](@Name varchar(500))
returns varchar(500)
as begin declare @startIndex as int ;
declare @endIndex as int ; declare @len as int ;
declare @reverse as varchar(500) ;
declare @luanma as varchar(200); set @startIndex = CHARINDEX('(',@Name) ;
if( @startIndex =0) return @Name ; set @len = LEN(@name) ;
set @reverse = Reverse( @Name );
set @endIndex = CHARINDEX(')', @reverse ) ; if( @endIndex <2 ) return left(@Name, @startIndex -1 ) ; if( CHARINDEX('(',@reverse) < @endIndex) return left(@Name,@startIndex-1 ) ; set @luanma = right(@Name , @endIndex - 1 ) ;
if( @luanma = '?') return left(@Name,@startIndex-1 ) ;
return left(@Name ,@StartIndex-1 ) + @luanma;
end ;
GO CREATE function [dbo].[TrimWord] (@Name varchar(500))
returns varchar(500)
as begin
declare @ret as varchar(500)
set @ret = @Name ;
if( @ret like '*%') begin
set @ret = right( @ret , len(@ret) - 1) ;
end if( @ret like '%办事处') begin
set @ret = LEFT( @ret , len(@ret) - 3) ;
end if( @ret like '%街道') begin
set @ret = LEFT( @ret , len(@ret) - 2) ;
end if( @ret like '%行政事务管理中心') begin
set @ret = LEFT( @ret , len(@ret) - 8) ;
end if( @ret like '%社会事务管理处') begin
set @ret = LEFT( @ret , len(@ret) - 7) ;
end if( @ret like '%生态管理委员会') begin
set @ret = LEFT( @ret , len(@ret) - 7) ;
end
if( @ret like '%管理委员会') begin
set @ret = LEFT( @ret , len(@ret) - 5) ;
end if( @ret like '%建设委员会') begin
set @ret = LEFT( @ret , len(@ret) - 5) ;
end if( @ret like '%街道办事处筹备组') begin
set @ret = LEFT( @ret , len(@ret) - 8) ;
end
if( @ret like '%管理分局') begin
set @ret = LEFT( @ret , len(@ret) - 4) ;
end if( @ret like '%管委会') begin
set @ret = LEFT( @ret , len(@ret) - 3) ;
end
if( @ret like '%生活区') begin
set @ret = LEFT( @ret , len(@ret) - 3) ;
end
if( @ret like '%工矿区') begin
set @ret = LEFT( @ret , len(@ret) - 3) ;
end if( LEN(@ret) <5) return @ret ; if( @ret like '%县%') begin
set @ret = Right( @ret , LEN(@ret) - CHARINDEX('县',@ret) ) ;
end if( LEN(@ret) <5) return @ret ; if( @ret like '%市%') begin
set @ret = Right( @ret , LEN(@ret) - CHARINDEX('市',@ret) ) ;
end if( LEN(@ret) <5) return @ret ; if( @ret like '%省%') begin
set @ret = Right( @ret , LEN(@ret) - CHARINDEX('省',@ret) ) ;
end return @ret ;
end ;
GO

使用如下SQL查询:

select   dbo.TrimWord( dbo.tidy( name) ) as TName ,* 
into n_Town
from town
where LEN(name) >2

继续整理

update n_Town
set TName = REPLACE(TName,'镇镇','镇')
where TName like '%镇镇'

update n_Town
set TName = REPLACE(TName,'乡乡','乡')
where TName like '%乡乡'

delete n_Town
where TName like '%\%'

n_Town 就是整理好的。其中 TName 是正确的。

使用SQL对数据进行整理的更多相关文章

  1. SQL Server 数据查询 整理

    一.使用SELECT检索数据 数据查询是SQL语言的中心内容,SELECT 语句的作用是让数据库服务器根据客户要求检索出所需要的信息资料,并按照规定的格式进行整理,返回给客户端. SELECT 语句的 ...

  2. SQL不同服务器数据库之间的数据操作整理(完整版)

    ---------------------------------------------------------------------------------- -- Author : htl25 ...

  3. 转载-SQL不同服务器数据库之间的数据操作整理(完整版) .

    ---------------------------------------------------------------------------------- -- Author : htl25 ...

  4. SQL调用系统存储过程整理

    SQL系统存储过程用法整理: xp_cmdshell --*执行DOS各种命令,结果以文本行返回. xp_fixeddrives --*查询各磁盘/分区可用空间 xp_loginconfig --*报 ...

  5. SQL反模式学习笔记18 减少SQL查询数据,避免使用一条SQL语句解决复杂问题

    目标:减少SQL查询数据,避免使用一条SQL语句解决复杂问题 反模式:视图使用一步操作,单个SQL语句解决复杂问题 使用一个查询来获得所有结果的最常见后果就是产生了一个笛卡尔积.导致查询性能降低. 如 ...

  6. Oracle DBLink跨数据库访问SQL server数据同步 踩坑实录

    项目需求:这里暂且叫A公司吧,A公司有一套人事管理软件,需要与我们公司的软件做人员信息同步,A公司用的是SQL server数据库,我们公司用的Oracle,接口都不会开发(一万句"fuck ...

  7. AngularJS SQL 获取数据

    使用PHP从MySQL中获取数据: <!DOCTYPE html> <html> <head> <meta charset="utf-8" ...

  8. Visual Basic 2012 借助DataGridView控件将SQL server2012 数据导入到Excel 2010

    摘  要: SQL Server 2012 数据和Excel 2010之间的连接和数据的传输,本篇文章主要针对的是SQL Server 2012 数据导入到Excel 2010文件中.Excel软件对 ...

  9. SQL server数据缓存依赖

    SQL server数据缓存依赖有两种实现模式,轮询模式,通知模式. 1  轮询模式实现步骤 此模式需要SQL SERVER 7.0/2000/2005版本以上版本都支持        主要包含以下几 ...

随机推荐

  1. SHELL脚本攻略(学习笔记)--2.5 tr

    tr主要用于映射结果集.压缩和删除字符.我个人感觉特别有用,特别是压缩连续空格(空行)为一个空格(空行),让不规则的信息变得规则. 2.5.1 tr映射 tr [options] [SET1] [SE ...

  2. 用Jenkins配置自动化构建

     公司培训内容 -------------->记一笔 dubbo 微服务soadiamond-server 配置中心kafka rocketmq消息队列cas-server 单点登录spring ...

  3. 8.4 H5知识点总结

    HTML简介 HyperText Markup Language 简称为HTML HyperText: 超文本 (文本 + 图片 + 视频 + 音频 + 链接) Markup Language: 标记 ...

  4. 基于tcp/udp的协议

    使用TCP协议的常见端口主要有以下几种: (1) FTP:定义了文件传输协议,使用21端口.常说某某计算机开了FTP服务便是启动了文件传输服务.下载文件,上传主页,都要用到FTP服务. (2) Tel ...

  5. C# 队列集合的使用

    using System; using System.Collections.Generic; using System.Text; using System.Collections; namespa ...

  6. IOC和AOP使用扩展 多种方式实现依赖注入

    多种方式实现依赖注入 1.Spring 使用setter访问器实现对属性的赋值, 2.Spring 构造constructor方法赋值, 3.接口注入 4.Spring P命名空间注入直接量 sett ...

  7. 常用JS汇总

    01. 取文档url参数值 function getQueryString(name) { var reg = new RegExp("(^|&)" + name + &q ...

  8. Python-实现对表插入百万条数据

    新手小白写的,我自己都不知道对不对,先写下来记着,以后掌握更多Python知识后,再来看下写的对不对. 题目:造一百万条大学生的基本信息(学校.专业.姓名.学号) 分析思路:利用Python的MySQ ...

  9. spring结合Quartz的集群功能实现

    一:前沿 在上一篇(http://www.cnblogs.com/wuhao1991/p/4331613.html)的博客中记载了定时的功能,但是集成是没有成功的,在这篇中,我在解释下这里的”集成的含 ...

  10. eclipse4.x 启动之后, "Initializing Java Tooling" 卡住问题解决

    eclipse4.x 启动之后, "Initializing Java Tooling(1%)",其他操作均被阻塞,导致无法正常工作, 解决方案: 删除当前工作目录下的worksp ...