最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Sql Server数据库中去除空格的函数
时间:2022-06-29 07:53:46 编辑:袖梨 来源:一聚教程网
有两个函数,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%'