sqlserver 将 “用 特定字符 分隔的一个字段” 拆分成多个字段,然后两个表之间数据更新
将源TXT文件sourceFile_table.txt导入数据库,生成新表dbo.sourceFile_table。新增字段lon、lat、shi、xian
源表dbo.sourceFile_table
源表dbo.GeographyInfo
SQL语句:
--删除表dbo.sourceFile_table中 双隐号
UPDATE sourceFile_table
SET [s_id] = REPLACE([s_id],'"','') ,
[s_lon_lat] = REPLACE([s_lon_lat],'"','') ,
[s_shi_xian] = REPLACE([s_shi_xian],'"','')
SELECT * FROM sourceFile_table
--查询表dbo.sourceFile_table:将逗号分隔的一个字段拆分成多个字段 ;将空格分隔的一个字段拆分成多个字段
SELECT TOP 1000 [s_id],
[s_lon_lat],
[s_shi_xian],
substring([s_lon_lat],1,charindex(',',[s_lon_lat])) lon,
substring([s_lon_lat],charindex(',',[s_lon_lat]) +1,30) lat,
substring(s_shi_xian,1,charindex(' ',s_shi_xian)) shi,
substring(s_shi_xian,charindex(' ',s_shi_xian) +1,30) xian
from sourceFile_table
--更新表dbo.sourceFile_table:将逗号分隔的一个字段拆分成多个字段 ;将空格分隔的一个字段拆分成多个字段
UPDATE sourceFile_table
SET lon=substring([s_lon_lat],1,charindex(',',[s_lon_lat])),
lat=substring([s_lon_lat],charindex(',',[s_lon_lat]) +1,30),
shi=substring([s_shi_xian],1,charindex(' ',[s_shi_xian])),
xian=substring([s_shi_xian],charindex(' ',[s_shi_xian]) +1,30)
SELECT * FROM dbo.sourceFile_table --更新表dbo.sourceFile_table:将拆分后, 字段lon数据中 逗号 删除,字段shi数据中 空格 删除
UPDATE sourceFile_table
SET [lon] = REPLACE([lon],',',''),
[shi] = REPLACE([shi],' ','')
SELECT * FROM dbo.sourceFile_table --更新表dbo.GeographyInfo:两个表之间数据更新,更新表dbo.GeographyInfo中字段shi、xian、lon、lat数据
update GeographyInfo
set GeographyInfo.shi=TS.shi,
GeographyInfo.xian=TS.xian,
GeographyInfo.lon=TS.lon,
GeographyInfo.lat=TS.lat
from GeographyInfo,sourceFile_table TS
where GeographyInfo.rerid=TS.s_id --查询dbo.GeographyInfo:表更新后的数据,最新1000条数据,根据id降序排序
SELECT TOP 1000 [id],
[rerid],
[shi],
[xian],
[lon],
[lat]
FROM [dbo].[GeographyInfo]
order by id desc --删除表dbo.sourceFile_table数据
delete from sourceFile_table
执行结果:
sqlserver》单击数据库》新建查询(N)》复制SQL语句到空白处》 !执行(X)
。。。
-----------------------------------------------------------------------简单示例1-----------------------------------------------------------------------
SQL语句1:
--新建表test
create table test(pp varchar(30))
go
select * from test --新增数据
insert into test values('耐克 DS001'),('安踏 AT002'),('阿迪达斯 AD009')
go
select * from test --查询表test:将空格分隔的一个字段拆分成多个字段
select
substring(pp,1,charindex(' ',pp))pp1,
substring(pp,charindex(' ',pp) +1,30) pp2
from test
go --删除表test
drop table test
go
执行结果:
sqlserver》单击数据库》新建查询(N)》复制SQL语句到空白处》 !执行(X)
SQL语句2:
--
SELECT LEFT(商品名称, CHARINDEX(' ', 商品名称 + ' ') - 1) AS 品牌 ,
STUFF(商品名称, 1, CHARINDEX(' ', 商品名称 + ' ') + 1, '') AS 商品代码
FROM ( VALUES ( '耐克 DS001'), ( '安踏 AT002'), ( '阿迪达斯 AD009') ) t ( 商品名称 ); --
select '耐克 DS001' as col1 into #Idontkonwthis
select left(col1,(select charindex(' ',col1))), substring(col1,(select charindex(' ',col1)),(select len(col1))) from #Idontkonwthis
执行结果:
-----------------------------------------------------------------------简单示例2-----------------------------------------------------------------------
SQL语句:
--①横向
declare @str1 varchar(max)
set @str1='福尔摩斯,tellme,他,在哪里'
set @str1=REPLACE(@str1,',',''',''')
exec ('select '''+@str1+'''') --②竖向
declare @str2 varchar(max)
set @str2='福尔摩斯,tellme,他,在哪里'
set @str2='select '''+replace(@str2,',',''' as col union all select ''')
--print @str
exec(@str2+'''') --xml解法
declare @a nvarchar(max)
declare @xml xml
set @a='aa;bb;cc;dd'
set @xml=cast('<root><col val="'+replace(@a,';','" /><col val="')+'"></col></root>' as XML)
-- select @xml
select n=t.c.value('@val','varchar(255)') from @xml.nodes('/root/col') t(c)
执行结果:
sqlserver》单击数据库》新建查询(N)》复制SQL语句到空白处》 !执行(X)
sqlserver 将 “用 特定字符 分隔的一个字段” 拆分成多个字段,然后两个表之间数据更新的更多相关文章
- hdu 2098 分拆素数和(一个偶数拆分成两个不同素数和 拆法数量)
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=2098 分拆素数和 Time Limit: 1000/1000 MS (Java/Others) ...
- js格式化input输入框内容(每几位分一组,并使用特定字符分隔)
<html> <head> <title></title> </head> <body> <input id=" ...
- javascript 特定字符分隔字符串函数
function fn(num,div,token){//num需要分割的数字,div多少位分割 token分割字符 num=num+'',div=div||3,token=token||',' re ...
- String的Split使用方法(以特定字符分隔,提取所需信息)
此处复制一串以空格分隔的数字,提取数字进行排序 int[] a = new int[10]; string input = Console.ReadLine();//获取用户输入的字符串 char[] ...
- sql server中将一个字段根据某个字符拆分成多个字段显示
sql server 数据库中某张表(Person)的数据信息是: ID Address 1 平山花园-4单元-12幢-203 2 香山花园-3单元-22幢-304 现在有需求是,将地址信息显示形式改 ...
- 9. 一个list拆分成多个list返回
/** * @Title: splitList * @Description: 1个list分割成多个list * @param targe 原list * @para ...
- 【转载】SQL语句用一个表的数据更新另一个表
在Sqlserver的维护更新操作中,有时候涉及到Update操作,其中有一种情况是根据特定的条件,以一个表中的数据更新另一个表的数据,此时涉及到两个表之间的关系以及操作,此处介绍2种更新方法. (1 ...
- SSAS的维度表之间的关系只能有一个不能有多个
我们在SSAS中创建维度的时候,有时候可能一个维度需要用到多个表的字段作为维度属性,那么这多个表之间势必存在关联关系,但是切记维度表之间的关联关系有且只能有一个不能有多个,下面我们来看一个例子. 现在 ...
- 一个通用的php正则表达式匹配或检测或提取特定字符类
在php开发时,日常不可或缺地会用到正则表达式,可每次都要重新写,有时忘记了某一函数还要翻查手册,所以,抽空写了一个关于日常所用到的正则表达式区配类,便于随便移置调用.(^_^有点偷懒). /*/ ...
随机推荐
- python列表常用方法
list是一个类,用中括号括上,逗号分隔,元素可以是数字,字符,字符串,也可以是嵌套列表,布尔类型. 1.通过索引取值 li=[1,12,9,'age',['wangtianning',[19,'10 ...
- [Java初探外篇]__关于正则表达式
正则表达式通常用于判断语句之中,用来检测一段字符串是否满足某一个格式.在日常生活中被广泛的用于各种用户输入信息的检测上. 而正则表达式实际上是一些具有特殊意义的字符序列.通过这些特殊字符构成的特殊序列 ...
- 从零开始学 Web 之 jQuery(五)操作元素其他属性,为元素绑定事件
大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...
- 记录一个简单的dbcp数据连接池
这个示例用到了ThreadLocal与dbcp,我觉得有点意思,就整理了下.使用dbcp,肯定要导入commons-dbcp.jar包.下面直接贴DBUtil代码: public class DBUt ...
- SOA&微服务&服务网格&高可用
SOA 架构 SOA 全称是:Service Oriented Architecture,“面向服务的架构”. 它是一种设计理念,其中包含多个服务,服务之间通过相互依赖最终提供一系列完整的功能. 各个 ...
- Rails项目防止时序攻击
时序攻击属于侧信道攻击/旁路攻击(Side Channel Attack),侧信道攻击是指利用信道外的信息,比如加解密的速度/加解密时芯片引脚的电压/密文传输的流量和途径等进行攻击的方式,一个词形容就 ...
- spring boot 2.0 源码分析(一)
在学习spring boot 2.0源码之前,我们先利用spring initializr快速地创建一个基本的简单的示例: 1.先从创建示例中的main函数开始读起: package com.exam ...
- 模块,import,from xxx import xxx
一,模块 模块就是一个包含了python定义和声明的文件,文件名就是模块的名字加上.py后缀,总体来说,import加载的模块一共分成四个通用的类别: 1,使用python编写的py文件 2,已被变异 ...
- AJAX 实战【三级联动】分析
使用 AJAX 对全国地名进行选取 <%@ Page Language="C#" AutoEventWireup="true" CodeFile=&quo ...
- MVC之Ajax异步操作
在页面的局部通过Html.Action加载一块分布页,我们可以通过Ajax异步去更换或更新这块分布页 通过一个下拉框值发生变化的时候,我们会去从后台重新访问这个action获取一个新的View,然后替 ...