当前位置: 代码迷 >> Sql Server >> 字符串截取转换有关问题,请各位达淫踊跃发言
  详细解决方案

字符串截取转换有关问题,请各位达淫踊跃发言

热度:65   发布时间:2016-04-27 21:36:14.0
字符串截取转换问题,请各位达淫踊跃发言
表a中有n条数据
其中一字段tt的数据为                           123@,1221424@,1223@,234334@
这n条数据的tt字段内容形式相同,长度不同
如何写条语句把这n条数据都转换成     @123,@1221424,@1223,@234334
先拜谢啦


------解决方案--------------------
update 表a set tt= '@ '+left(replace(tt, '@, ', ',@ '),len(tt)-1)
------解决方案--------------------
declare @s varchar(50)

set @s= '123@,1221424@,1223@,234334@ '

select '@ '+left(replace(@s, '@, ', ',@ '),len(@s)-1)

--结果
------------------------
@123,@1221424,@1223,@234334

(所影响的行数为 1 行)

------解决方案--------------------
Declare @TT Varchar(1000)
Select @TT = '123@,1221424@,1223@,234334@ '
Select @TT = '@ ' + Replace(Replace(@TT , '@ ' , ' '), ', ' , ',@ ')
Select @TT
--Result
@123,@1221424,@1223,@234334

------解决方案--------------------
update a set tt=substring(tt,charindex( '@ ',tt),1)+left(tt,charindex( '@ ',tt)-1)
------解决方案--------------------
drop table a
create table a
(
tt varchar(1000)
)
GO
insert into a
select '123@,1221424@,1223@,234334@@ '
union all
select '1233@,12123@,12121234@,23412542@ '
union all
select '11123@,1231@,112412134@,23425142@ '
GO

update a set tt= '@ '+left(replace(tt, '@, ', ',@ '),len(tt)-1)

select * from a

------------------------
@123,@1221424,@1223,@234334@
@1233,@12123,@12121234,@23412542
@11123,@1231,@112412134,@23425142