今天和大家聊一下,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()简单替换来处理,结果无法去除的原因。
总结
到此这篇关于oracle去除空格的三种方式的文章就介绍到这了,更多相关oracle去除空格方式内容请搜索IT俱乐部以前的文章或继续浏览下面的相关文章希望大家以后多多支持IT俱乐部!