怎样拆分某个字段的字符,然后删除原来的数据,将拆分出来的数据重新插入?

wnsr 2016-04-28 04:16:57
如表t1,有字段a,b,c
其中字段a 的内容,
a b c
ds;df;w 1 sd
xc;c 2 df
a 3 df

怎样变成
a b c
ds 1 sd
df 1 sd
w 1 sd
xc 2 df
c 2 df
a 3 df
...全文
159 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Xiiiiin 2016-04-28
  • 打赏
  • 举报
回复
没有测过,但是感觉差不多就这样,有问题再说 DECLARE @tmp varchar(max) ---A列的数据 DECLARE cur CURSOR FOR ---如果数据量大,建议用表变量遍历,别用游标 SELECT A FROM 表 OPEN cur FETCH NEXT FROM cur INTO @tmp WHILE CHARINDEX(';', @tmp) <> 0 BEGIN UPDATE 表 SET A = REPLACE(A, @tmp, SUBSTRING(@tmp, 1, CHARINDEX(';', @tmp))) END CLOSE cur
中国风 2016-04-28
  • 打赏
  • 举报
回复
use Tempdb
go
--> --> 
 
if not object_id(N'Tempdb..#T') is null
	drop table #T
Go
Create table #T([a] nvarchar(27),[b] int,[c] nvarchar(22))
Insert #T
select N'ds;df;w',1,N'sd' union all
select N'xc;c',2,N'df' union all
select N'a',3,N'df'
Go
Select 
    [a]=substring(a.[a],b.number,charindex(';',a.[a]+';',b.number)-b.number) ,[b],[c]
from 
    #T a,master.dbo.spt_values b
where
    b.type='P' AND b.number>=1 AND charindex(';',';'+a.[a],b.number)=b.number
/*
a	b	c
ds	1	sd
df	1	sd
w	1	sd
xc	2	df
c	2	df
a	3	df
*/

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧