使用SQL对数据进行整理
网上下的全国 省市区 数据比较乱(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对数据进行整理的更多相关文章
- SQL Server 数据查询 整理
一.使用SELECT检索数据 数据查询是SQL语言的中心内容,SELECT 语句的作用是让数据库服务器根据客户要求检索出所需要的信息资料,并按照规定的格式进行整理,返回给客户端. SELECT 语句的 ...
- SQL不同服务器数据库之间的数据操作整理(完整版)
---------------------------------------------------------------------------------- -- Author : htl25 ...
- 转载-SQL不同服务器数据库之间的数据操作整理(完整版) .
---------------------------------------------------------------------------------- -- Author : htl25 ...
- SQL调用系统存储过程整理
SQL系统存储过程用法整理: xp_cmdshell --*执行DOS各种命令,结果以文本行返回. xp_fixeddrives --*查询各磁盘/分区可用空间 xp_loginconfig --*报 ...
- SQL反模式学习笔记18 减少SQL查询数据,避免使用一条SQL语句解决复杂问题
目标:减少SQL查询数据,避免使用一条SQL语句解决复杂问题 反模式:视图使用一步操作,单个SQL语句解决复杂问题 使用一个查询来获得所有结果的最常见后果就是产生了一个笛卡尔积.导致查询性能降低. 如 ...
- Oracle DBLink跨数据库访问SQL server数据同步 踩坑实录
项目需求:这里暂且叫A公司吧,A公司有一套人事管理软件,需要与我们公司的软件做人员信息同步,A公司用的是SQL server数据库,我们公司用的Oracle,接口都不会开发(一万句"fuck ...
- AngularJS SQL 获取数据
使用PHP从MySQL中获取数据: <!DOCTYPE html> <html> <head> <meta charset="utf-8" ...
- Visual Basic 2012 借助DataGridView控件将SQL server2012 数据导入到Excel 2010
摘 要: SQL Server 2012 数据和Excel 2010之间的连接和数据的传输,本篇文章主要针对的是SQL Server 2012 数据导入到Excel 2010文件中.Excel软件对 ...
- SQL server数据缓存依赖
SQL server数据缓存依赖有两种实现模式,轮询模式,通知模式. 1 轮询模式实现步骤 此模式需要SQL SERVER 7.0/2000/2005版本以上版本都支持 主要包含以下几 ...
随机推荐
- Python urllib模块urlopen()与urlretrieve()详解
1.urlopen()方法urllib.urlopen(url[, data[, proxies]]) :创建一个表示远程url的类文件对象,然后像本地文件一样操作这个类文件对象来获取远程数据.参数u ...
- git免密码pull,push
执行git config --global credential.helper store
- HDU 2222 Keywords Search(AC自动机入门)
题意:给出若干个单词和一段文本,问有多少个单词出现在其中.如果两个单词是相同的,得算两个单词的贡献. 分析:直接就是AC自动机的模板了. 具体见代码: #include <stdio.h> ...
- swift 代码添加image
let image_ElectricianBtn = UIImage(named: "ElectricianBtn") let vimage_ElectricianBtn = UI ...
- iOS button文字居中
新建一个UIButton的category .h @interface UIButton (QXTitleInCenter) -(instancetype)init; @end .m @impleme ...
- Springmvc4 com/fasterxml/jackson/core/JsonProcessingException
非常感谢: 谭卓博客 springmvc4 json springmvc4 集成hibernate4 出现 NoClassDefFoundError:com/fasterxml/jackson/cor ...
- Vmware /CentOS访问Windows中的文件
1.将该文件设为共享文件夹 2.确定你的windows IP地址,用户名及密码 3.CentOS终端输入以下内容: [root@*** mnt]# mkdir winD [root@*** m ...
- Markdown常用基本语法
现在是我在学习Markdown时做的笔记.学完这些Markdown的基本使用已经不成问题. 1. 标题设置(让字体变大,和word的标题意思一样)在Markdown当中设置标题,有两种方式:第一种:通 ...
- Android Log介绍
android.util.Log常用的方法有以下5个:Log.v() ,Log.d() ,Log.i() ,Log.w() ,Log.e() .按照日志级别从高到低为ERROR, WARN, INFO ...
- 2015年九月八日---js学习总结
参考书:javaScript Dom 编程的艺术 知识小结:一:js简史:前称ECMAScript 是一种脚本语言通常只能通过浏览器进行解释和执行. Dom(文档对象模型):是一套对文档的内容进行抽象 ...