Sql Server数据库中去除空格的函数

作者:袖梨 2022-06-29


有两个函数,TTRIM()和LTRIM(),可以用来从字符串中剪掉空格。函数LTRIM()去除应该字符串前面的所有空格;函数RTRIM()去除一个字符串尾部的所有空格。这里有一个任何使用函数RTRIM()的例子:
 
SELECT RTRIM(site_name) FROM site_directory
 
在这个例子中,如果任何一个站点的名字尾部有多余的空格,多余的空格将从查询结果中删去。
你可以嵌套使用这两个函数,把一个字符串前后的空格同时删去:
 
SELECT LTRIM(RTRIM(site_name) FROM site_directory
 
你会发现,在从CHAR型字段中剪掉多余的空格时,这两个函数非常有用。记住,如果你把一个字符串保存在CHAR型字段中,该字符串会被追加多余的空格,以匹配该字段的长度。用这两个函数,你可以去掉无用的空格,从而解决这个问题。


前后的空格,使用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值。

例子替换

1.去掉回车的字符格式:

REPLACE(filed_name,CHAR(13)+CHAR(10),SPACE(0))
其中的filed_name代表 数据库的字段名,使用时候替换即可,使用范例如下
update ieel00h set el_name1= REPLACE(el_name1,CHAR(13)+CHAR(10),SPACE(0)) where el_no like 'L%'
2.去空格

可以通过 rtrim 去除右边空格, ltrim去除左边空格 。使用范例如下:
update ieel00h set el_name1=rtrim(el_name1)  where el_no like 'L%'
update ieel00h set el_name1=Ltrim(el_name1)  where el_no like 'L%'

相关文章

精彩推荐