当前位置:首页 > 站长知识 > 数据库 > 正文内容

oracle如何去除空格

2024-11-30数据库33

今天和大家聊一下,oracle 中去除空格的几种方式,由简单到复杂,必有一种方式解决你的问题。

方式一: 利用 TRIM() 函数

1
2
3
select trim('  这是一个  字符串    ') as zfc from dual;
--输入:'  这是一个  字符串    '
--输出结果:'这是一个  字符串'

分析: trim()函数的作用是去除字符串两端的空格,无法去除中间的空格。

方式二: 利用 replace() 函数

1
2
3
select replace('  这是一个  字符串    ',' ','') as zfc from dual;
--输入:'  这是一个  字符串    '
--输出结果:'这是一个字符串'

**分析:**replace函数在之前的文章中介绍过,简单理解是就是字符串替换函数,将指定的子字符串替换为新的子字符串。
放在上面的语句中,就是替换’ ‘为’',将空格替换为空。

replace()和rim()比较,trim()是只去除字符串两端的空格,replace()替换的是整个字符串的空格,根据不同的场景选择性使用。

方式三: 同样是利用 replace() 函数

1
2
3
4
5
6
7
8
9
10
select
replace(replace(replace(replace('  这是一个  字符串    ',chr(9),''),chr(10),''),chr(13),''),chr(32),'')
 as zfc
 from dual;
--chr(9) 制表符
--chr(10) 换行符
--chr(13) 回车符
--chr(32) 空格符
--输入:'  这是一个  字符串    '
--输出结果:'这是一个字符串'

**分析:**语句的原理还是进行替换,将其替换为空,只不多这次替换对象是 制表符、换行符、回车符、空格符而已。

chr()函数:该函数返回以数值表达式值为编码的字符(也就是将ASCII码转换为字符),不用在意这个函数,只需明白代表的含义即可,有兴趣可深入了解一下。

chr(9) 代表 制表符
chr(10) 代表 换行符
chr(13) 代表 回车符
chr(32) 代表 空格符

无论是制表符、换行符、回车符、空格符 在数据库中字段输出时都和空格很相似,所以很多朋友误将其当成空格用trim()函数或者replace()简单替换来处理,结果无法去除的原因。