SQL替换字段最后一个字符和几个字符
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL替换字段最后一个字符和几个字符相关的知识,希望对你有一定的参考价值。
UPDATE S_Video SET S_VData=RIGHT(S_VData,LEN(S_VData)-1) WHERE S_VData LIKE '%#'
服务器: 消息 8116,级别 16,状态 1,行 1
函数 right 的参数 1 的数据类型 ntext 无效。
请问这句话该如何写才正确。
我是要替换最后几个字符,不是替换那个字段中只要有的字符,那个字符可能在中间也有,但是我只要替换最后的,也就是最右边的字符,中间的无需替换。
不能用right,left取
改成用substring 应该可以
----------
如果S_VData 不会超过4000的话
可以这样
UPDATE S_Video SET S_VData=RIGHT(convert(Nvarchar(4000),S_VData),LEN(convert(Nvarchar(4000),S_VData))-1) WHERE S_VData LIKE '%#'本回答被提问者采纳 参考技术B UPDATE S_Video SET S_VData =前面的+replace(substr(S_VData,-5,5)“需要替换的”,“替换的内容”) WHERE ...
select substr('123456789',-5,5) str from dual;--oracle表示取后5个字符 参考技术C UPDATE S_Video SET S_VData replace(S_VData,“需要替换的”,“替换的内容”) WHERE S_VData LIKE '%#'
mssql,让某字段里的 某字符替换成另一字符
说明,本人已经用了下面语句出错:
update news set content=Replace(content,'电脑','计算机')
用了下面的语句不出错了,但内容大于4000个字符的文章被截了。
update news set content=Replace(cast(content as varcher(8000)),'电脑','计算机')
有什么办法,谢谢!QQ:25988850
回复军统的话:
不能加大,最大只能是8000了,那个varcher是打错了。
那你就把8000给加大
先select max(len(content)) from news 看看最大的是多大,然后再改8000那个参数
再一个content as varcher 这地方你写错了吧,是varchar吧? 参考技术A 确实如此,Replace不支持Text类型。
如果用程序来做的话,会简单些,不过速度也会慢一些。 参考技术B 突然想到,你在数据库里设计时该列数据类型设计成什么的?
以上是关于SQL替换字段最后一个字符和几个字符的主要内容,如果未能解决你的问题,请参考以下文章