网上下的全国 省市区 数据比较乱(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. windows下Redis编译安装

    redis是现在比较流行的noSQL,主流大型网站都用的比较多,很多同学不知道怎么安装,这里介绍在windows下面安装以及扩展,提供学习使用,实际使用环境多在Linux下. 首先到相应网站下载red ...

  2. 【228】◀▶ Excel 函数说明

    官方帮助:Excel 函数(按字母顺序列出) 官方帮助:Excel 函数(按类别列出) 参考:EXCEL常用函数大全 01   N_ELEMENTS 表达式或者变量的元素个数. 02   DEFSYS ...

  3. Android文件系统的结构

    Android 4.2.2 版本的文件系统 内核版本为 3.0.31 版本号为JDQ39 factory//估计是存放网络通信协议的登录密钥的|-- bluetooth|-- hdcp.keys|-- ...

  4. asp.net GDI+绘制多个矩形

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...

  5. Mahout源码分析之 -- 文档向量化TF-IDF

    fesh个人实践,欢迎经验交流!Blog地址:http://www.cnblogs.com/fesh/p/3775429.html Mahout之SparseVectorsFromSequenceFi ...

  6. Android-Service生命周期

    Service的基本概念,以及Service的生命周期: 一.Service的基本概念: 一个Service就是应用程序的组件,可以在后台长期跑,或者是为其他的应用提供功能上的支持.Service一般 ...

  7. centos添加开机启动项目

    centOS 配置开机自启动两种方式: 1.vi /etc/rc.d/rc.local 在此文件中加入启动的脚本 2.chkconfig 增加自己的脚本  --add --list --del 步骤: ...

  8. php 递归函数的三种实现方式

    递归函数是我们常用到的一类函数,最基本的特点是函数自身调用自身,但必须在调用自身前有条件判断,否则无限无限调用下去.实现递归函数可以采取什么方式呢?本文列出了三种基本方式.理解其原来需要一定的基础知识 ...

  9. 程序员遇到Bug时的25个反应

    开发应用程序是一个非常有压力的工作.没有人是完美的,因此在这个行业中,代码中出现bug是相当普遍的现象.面对bug,一些程序员会生气,会沮丧,会心烦意乱,甚至会灰心丧气,而另一些程序员会依然保持冷静沉 ...

  10. 常用linux指令

    删除:rm -rf -r 就是向下递归,不管有多少级目录,一并删除       -f 就是直接强行删除,不作任何提示的意思 压缩解压:tar -c: 建立压缩档案 -x:解压 -t:查看内容 -r:向 ...