网上下的全国 省市区 数据比较乱(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. java GZIP压缩和解压

    最近碰到了一个按GZIP解压指定的输入流数据,备份下 import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream ...

  2. 离线安装VS 2013开发工具的方法!

    目前微软已正式发布了VS 2013的开发工具,但安装VS 2013开发工具前必须安装或升级到IE10,否则无法进行安装.本文主要介绍在Windows Server 2008 R2 SP1下离线安装IE ...

  3. 《深入浅出 Java Concurrency》

    http://www.blogjava.net/xylz/archive/2010/07/08/325587.html

  4. 计时函数 clock() in c and c++

    在MSDN中,查得对clock函数定义如下: clock_t clock(void) ; 返回该程序从启动到函数调用占用CPU的时间.这个函数返回从“开启这个程序进程”到“程序中调用clock()函数 ...

  5. PHP世纪万年历

    <?  //世纪万年历  #这是唯一的设置-请输入php文件的位置  $file="http://192.168.1.168/php/rl/s2m.php";  //#农历每 ...

  6. centos7 u盘启动路径设置

    进入安装页面选择install centos7,按tab按键,设置路径如下 vmlinuz initrd=initrd.img inst.stage2=hd:/dev/sdb4 quiet

  7. meta标签总结

    1."format-detection" format-detection翻译成中文的意思是“格式检测”,顾名思义,它是用来检测html里的一些格式的, 那关于meta的forma ...

  8. 【微博SDK调用逻辑】微博SDK的调用逻辑,最好自己还是写一个例子,试一下!!!

    逻辑是这样的,谢谢给我讲东西的开发哥哥,嘻嘻~~~  1.点击微博登录,SDK会打开微博客户端,然后点击登陆(如果已经登录了会出现一个当前app跟微博交互的图片界面,然后提示“正在获取授权信息”,如果 ...

  9. zoj1260 king

    题目描述:从前有一个王国,皇后怀孕了.她祈祷到:如果我的孩子是儿子,我希望他是一个健康的国王. 9 个月后,她的孩子出生了,的确,她生了一个漂亮的儿子.但不幸的是,正如皇室家庭经常发生的那样,皇后的儿 ...

  10. Json在前台与后台之间的使用

     一.将前台数据,使用ajax中的post.get传到后台 $.ajax({ type: 'post', url: 'your url', data: $("form").seri ...