今天和大家聊一下,oracle 中去除空格的几种方式,由简单到复杂,必有一种方式解决你的问题。
select trim(' 这是一个 字符串 ')as zfc from dual;--输入:' 这是一个 字符串 '--输出结果:'这是一个 字符串'
分析: trim()函数的作用是去除字符串两端的空格,无法去除中间的空格。
selectreplace(' 这是一个 字符串 ',' ','')as zfc from dual;--输入:' 这是一个 字符串 '--输出结果:'这是一个字符串'
**分析:**replace函数在之前的文章中介绍过,简单理解是就是字符串替换函数,将指定的子字符串替换为新的子字符串。
放在上面的语句中,就是替换’ ‘为’',将空格替换为空。
replace()和rim()比较,trim()是只去除字符串两端的空格,replace()替换的是整个字符串的空格,根据不同的场景选择性使用。
selectreplace(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()简单替换来处理,结果无法去除的原因。
提示:请勿发布广告垃圾评论,否则封号处理!!