网上下的全国 省市区 数据比较乱(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. Deep Learning(深度学习)学习笔记整理

    申明:本文非笔者原创,原文转载自:http://www.sigvc.org/bbs/thread-2187-1-3.html 4.2.初级(浅层)特征表示 既然像素级的特征表示方法没有作用,那怎样的表 ...

  2. GBDT(MART) 迭代决策树入门教程 | 简介

    GBDT(MART) 迭代决策树入门教程 | 简介  http://blog.csdn.net/w28971023/article/details/8240756

  3. debian vi

    这次用DigitalOcean VPS发现vi的方向键变成字母,没办法正常使用,搜索了下找到了解决办法. 1 vi /etc/vim/vimrc.tiny 找到set compatible改为set ...

  4. hibernate学习(设计一对多 关系 映射)

    1,配置文件: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-conf ...

  5. 绕过/*,web.xml直接访问jsp

    web.xml中如果配置了/* 全匹配,那么不能用servet去响应页面返回了,因为全都被会/*拦截. <servlet> <servlet-name>validateAuth ...

  6. 济南学习D2T2__数学分析题

    [问题描述]有N个数,随机选择一段区间,如果这段区间的所有数的平均值在[l,r]中则你比较厉害.求你比较厉害的概率.[输入格式]第一行有三个数N,l,r,含义如上描述.接下来一行有N个数代表每一个数的 ...

  7. solr入门命令

    #####################shell命令############################# 导入文档: sh bin/post -c gettingstarted docs/i ...

  8. WPF中设置快捷键

    方式1: 窗体中加入资源 <UserControl.Resources>        <RoutedUICommand x:Key="Cut" Text=&qu ...

  9. 一些有意思的APP

    1.简书:一个优雅的写作/阅读平台. 2.知乎:知识分享社区: 3.behance:设计者的圈子: 4.海词词典:电脑.手机同步查询的好帮手(电脑端快捷键:双击 Alt 弹出/关闭查询框,非常方便) ...

  10. 【jquery】:表单返回信息

    第一个页面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w ...