update table
set info = stuff(info,charindex('$',info,1)+1,1,'55555')
set info = stuff(info,charindex('$',info,1)+1,1,'55555')
解决方案 »
- |zyciis| SQL2005和SQL2000有没有表映射功能,映射B数据库的的表User到A数据库中 谢谢 急
- 关于一个统计问题?
- 看看这条SQL语句的问题
- 基于面试SQL查询对join的效率疑惑
- 用企业管理器生成SQL时如何才能把表的‘描述、默认值’都包括?
- 求一动态查询分类的语句(急)
- 为什么会这样
- 再提 : 作者'winter_leaf_wei'问题<<遇到一些看似平常,但是确很难的问题,希望牛人给予解答! >>
- 关于多用户操作、记录锁定的问题(100分)
- sql你们都练到第几段了!能教教我吗?我急需学习SQL,谁能当我的老师啊!
- 高分求解问题,邹建大哥帮帮忙。SQL数据转换???
- 为什么自建的表是无效的啊?
SET INFO=STUFF(INFO,CHARINDEX(1,'$',INFO),CHARINDEX(CHARINDEX(1,'$',INFO)+1,'$',INFO)-CHARINDEX(1,'$',INFO)+1,'$55555$')没测试,不知道有没写错
Insert into @t
select 1 ,cast('信息$1$0$' as text)
union all select 2 ,cast('信息信息$1$0$' as text)
union all select 3 ,cast('信息信息$$0$' as text)update @t set info=Replace(cast(info as varchar),'$1$','$55555$')select * from @t
SET INFO=STUFF(INFO,CHARINDEX('$',INFO,1),CHARINDEX('$',INFO,CHARINDEX('$',INFO,1)+1,'$',INFO)-CHARINDEX(1,'$',INFO)+1),'$55555$')
发这么多贴,回复完就找不到再哪里回复了
UPDATE TABLENAME
SET INFO=STUFF(INFO,CHARINDEX('$',INFO,1),CHARINDEX('$',INFO,CHARINDEX('$',INFO,1)+1)-CHARINDEX('$',INFO,1)+1),'$55555$')
insert into @t select 1,'信息$1$0$'
insert into @t select 2,'信息信息$1$0$'
insert into @t select 3,'信息信息$$0$'update @t set info=stuff(info,charindex('$',info)+1,charindex('$',stuff(info,charindex('$',info),1,''))-charindex('$',info),'55555') select * from @t/*
id info
----------- --------------------
1 信息$55555$0$
2 信息信息$55555$0$
3 信息信息$55555$0$
*/
set info =
stuff(info,charindex('$',info,1),charindex('$',info,charindex('$',info,1)+1))-charindex('$',info,1)+1,'$55555$')
insert @t select 1,'信息$1$0$'select * from @t
update @t
set info = stuff(cast(info as varchar),charindex('$',info,1)+1,1,'55555')
select * from @t
/*id info
----------- ---------------
1 信息$1$0$(所影响的行数为 1 行)
(所影响的行数为 1 行)id info
----------- --------------
1 信息$55555$0$
*/
insert #t
select N'信息$1$0$'
union all
select N'信息信息$1$0$'
union all
select N'信息信息$$0$'update #t
set info=
left(info,charindex( '$',info))+'55555'
+right(stuff(info,1,charindex('$',info),''),Len(stuff(info,1,charindex( '$',info),''))-charindex('$',stuff(info,1,charindex( '$',info),''))+1) from #tselect * from #tdrop table #t
/*
result
id info
-----------------------------------------------------------------------------
1 信息$55555$0$
2 信息信息$55555$0$
3 信息信息$55555$0$(3 row(s) affected)
*/
再说这个就是针对TEXT的
删除指定长度的字符并在指定的起始点插入另一组字符。语法
STUFF ( character_expression , start , length , character_expression ) 参数
character_expression由字符数据组成的表达式。character_expression 可以是常量、变量,也可以是字符或二进制数据的列。start是一个整形值,指定删除和插入的开始位置。如果 start 或 length 是负数,则返回空字符串。如果 start 比第一个 character_expression 长,则返回空字符串。length是一个整数,指定要删除的字符数。如果 length 比第一个 character_expression 长,则最多删除到最后一个 character_expression 中的最后一个字符。返回类型
如果 character_expression 是一个支持的字符数据类型,则返回字符数据。如果 character_expression 是一个支持的 binary 数据类型,则返回二进制数据。