sql 怎么去掉最后一个字符,请看详细

sql 怎么去掉最后一个字符,请看详细,第1张

对于字符串结尾不是空格的情况用Len是可以的(如上):

substring(字符串,1,len(字符串)-1) 从第一位开始,截取到第n-1位

left(字符串,len(字符串)-1)  从左侧截取n-1位

但是结尾有空格时得不到正确结果(如下,括号[]不算在字符串内,为了显示后面有空格):

[胡 大侠      ]执行后成为 [胡 大]

所以要先判断结尾是否有空格,有的话用下面语句先行替换:

UPDATE Student SET [Name] = SUBSTRING([Name], 1, LEN([Name])) WHERE  RIGHT([Name], 1) = ' '

不管后面在多少空格,这一个子就全替换掉啦!然后再用前面的语句就可以正确去掉最后一个字符了。(如果在你的需求里最后的空格也算一个字符,那么要标记下或者合成一条语句执行)

(PS:试过DataLength()也不行,因为它是以字节计算)

sqlserver的话用charindex截取到你要的字符位置,用left函数截取,后面的自然就没了

left(col,charindex('字符',col)-1)

-----------------

删除指定字符到指定的其他字符,要用stuff函数

stuff(col,charindex('字符',col),charindex('其他字符',col)-charindex('字符',col)+1,'')

不知道你包含不包含这两个字符,上面的语句是同时去除两个字符的,若不去除

stuff(col,charindex('字符',col)+,charindex('其他字符',col)-charindex('字符',col)-1,'')

如果只有一个单引号想去掉,可以用这个:

update 表名 set 列名 = replace(列名,'\'','')

如果确定在最后一位,可以用这个:

update 表名 set 列名 = left(列名,CHAR_LENGTH(列名) - 1)

望采纳,谢谢


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/6782648.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存