Sql Server数据库sql语句去除所有空格

此处的所有空格包括:特殊的空格,看起来跟普通的空格一模一样,但就是无法替换掉。

前后的空格,使用LTrim和RTrim即可,例如:LTrim(RTrim(Name))

中间的空格,使用replace函数替换,例如:Replace(Name,' ','')

问题背景:客户在使用系统,在编辑保存时,输入了一个特殊的空格,导致台账回显时,不能正常回显。

解决方案:保存时特殊处理,去掉所有空格,这个没问题,但是那些已经保存的就要用sql语句来去掉,才能正常显示。

因为输入的是特殊符号,所以用LTrim和RTrim时解决不了的;在网上找了个方法,还是可以的,

通过ascii函数,找出空格的ascii值,然后用replace函数+char函数来替换。

①通过查询的方式,将特殊空格之外的值替换成空字符串,这样就剩下特殊空格,通过ascii函数查到特殊空格的ascii值

例:select ascii(replace(name,'XXX','') from 表名 where id=xxx

②将该值替换成空字符串,例如通过ascii函数,找到空格的ascii值为9,则使用replace(Name,char(9),'')来替换。

例:update 表名 set name=replace(name,char(9),'')

至此,大功告成!!,就赶紧记下来了。

点击查看参考的博客


 

 

你可能感兴趣的:(sql,server)