此处的所有空格包括:特殊的空格,看起来跟普通的空格一模一样,但就是无法替换掉。
前后的空格,使用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语句处理。介绍了用ascii函数查特殊空格的ascii值,再用replace+char函数替换的方法。
1518

被折叠的 条评论
为什么被折叠?



