sqlserver数据库 表中字段值有空格,如何去除空格(例如char (5) 存入数据不足5位时sqlserver会自动补空格)

普通的空格

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

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

 

如果是普通的空格,很容易替换,但有时候会遇到一些特殊的空格,就比较麻烦,看起来跟普通的空格一模一样,但就是无法替换掉。这就需要特殊的方法去找出空格,然后用replace替换。

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

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

按照上面的方式,无非就是怎么找出空格的ascii值。

假设Name有个值是“张三 ”,后面有个特殊的空格。

select ascii(replace(name,'张三','') from 表名 where id=**

把Name的值取出,然后替换掉文本部分,剩下的就是特殊的那个空格,就能通过ascii函数来获取这个空格ascii值。

posted @ 2017-06-13 14:57  我不会游泳  阅读(8461)  评论(0编辑  收藏  举报