首先便是这Trim函数。Trim 函数具有删除任意指定字符的功能,而去除字符串首尾空格则是trim函数被使用频率最高的一种。语法Trim ( string ) ,参数string:string类型,指定要删除首部和尾部空格的字符串返回值String。函数执行成功时返回删除了string字符串首部和尾部空格的字符串,发生错误时返回空字符串("")。 如果参数值为null时,会抛出空指针异常。在oracle中,trim使用的形式多为人rtrim()与ltrim()两种,分别为去除字符串右边空格与去除字符串左边空格。

当然trim的功能不止如此,下面进行细致的介绍,这里我多以去除字符串空格为例。

我们看下trim函数的语法描述:trim( [ {  {leading|trailing|both}  [trim_character]|trim_character}  from] trim_source

1)、不使用任何参数

SQL> select trim('   11   ') aa from dual;

AA
--
11

这是最常见的一种使用方法,都使用默认的参数,默认情况下TRIM会同时删除字符串前后出现的空格。

2)、使用both参数,效果等同于方法一不使用任何参数

SQL> select trim(both from '   11   ') aa from dual;

AA
--
11

“BOTH”参数表示同时去除字符串前后所指定的内容(默认情况下删除空格)。

3)、使用leading与trailing参数

SQL> select trim(leading from '   11  ') aa from dual;

AA
----
11

SQL> select trim(trailing from '   11  ') aa from dual;

AA
-----
   11
从结果中得分隔符'-',可以发现使用leading参数可以去除字符串右端的空格,而trailing参数则可以去除字符串左端的空格。正如oracle提供的rtrim()与ltrim()。

4)、使用trim_character参数

trim_character参数改变了“删除空格”的默认行为。如果想要删除字符串'xxxxWORLDxxxx'前后出现的“x”,“trim_character”参数就派上用场了。

SQL> select trim('x' from 'xxxxWORLDxxxx') aaaaa from dual;

AAAAA
-----
WORLD

trim_character配合“both”、“trailing”和“leading”三个参数使用效果如下,与之前演示类似。看结果,不赘述。

SQL> select trim('x' from 'xxxxWORLDxxxx') aaaaa from dual;

AAAAA
-----
WORLD

SQL> select trim(both 'x' from 'xxxxWORLDxxxx') aaaaa from dual;

AAAAA
-----
WORLD

SQL> select trim(trailing 'x' from 'xxxxWORLDxxxx') aaaaa from dual;

AAAAA
---------
xxxxWORLD

SQL> select trim(leading 'x' from 'xxxxWORLDxxxx') aaaaa from dual;

AAAAA
---------
WORLDxxxx

必须注意的一点是这里的“trim_character”参数只允许包含一个字符,不支持多字符。trim不能满足我们去除多字符要求,但是我们可以使用rtrim和ltrim来处理。
1)使用rtrim

SQL> select rtrim('ORxxxxWORLDxxxxOR','OR') aaaaa from dual;

AAAAA
---------------
ORxxxxWORLDxxxx
2)使用ltrim

SQL> select ltrim('ORxxxxWORLDxxxxOR','OR') aaaaa from dual;

AAAAA
---------------
xxxxWORLDxxxxOR
3)联合使用RTRIM和LTRIM函数达到我们的目的
SQL> select rtrim(ltrim('ORxxxxWORLDxxxxOR','OR'),'OR') aaaaa from dual;

AAAAA
-------------
xxxxWORLDxxxx

使用rtrim和ltrim函数时的注意事项:“OR”不表示整个“OR”字符串进行匹配,而是发现任意的字符“O”或字符“R”均做删除操作。

对于trim函数的应用就介绍到,下面介绍一下replace函数,个人觉得replace函数在去空格时更好用。replace 函数用第三个表达式替换第一个字符串表达式中出现的所有第二个给定字符串表达式。来看下replace函数的语法描述:replace('string_replace1','string_replace2','string_replace3')

'string_replace1' 待搜索的字符串表达式,string_replace1 可以是字符数据或二进制数据。

'string_replace2' 待查找的字符串表达式,string_replace2 可以是字符数据或二进制数据。

'string_replace3' 替换用的字符串表达式,string_replace3 可以是字符数据或二进制数据。

返回类型,如果 string_replace(1、2 或 3)是支持的字符数据类型之一,则返回字符数据;如果 string_replace(1、2 或 3)是支持的 binary 数据类型之一,则返回二进制数据。

这里我们依然以去空格为例。

SQL> select replace('   aa  kk  ',' ','') abcd from dual;

ABCD
----
aakk

与使用trim函数的结果进行对比,我们可以发现,使用replace函数不仅可以去除字符串两端的空格,也可去除字符串内部的空格。

当然,如果只是要去除字符串两端的空格,使用trim函数效率会更高

ORACLE对字符串去空格处理(trim)的更多相关文章

  1. javascript 字符串去空格

    1.正则去空格 a.去掉字符串中所有空格 " hello world ".replace(/\s+/g,"");//helloworld b.去掉字符串左边空格 ...

  2. JavaScript去空格之trim()

    <script> var str=" ab cd "; alert("["+str.trim()+"]"); </scri ...

  3. 【SQL】字符串去空格解决方法

    一.表中字符串带空格的原因 1,空格就是空格. 2,控制符 显示为 空格. 二.解决方法 第一种情况,去空格的处理的比较简单,Replace(column,' ','') 就可以解决. 第二种情况,解 ...

  4. Foundation框架的一些实用方法:替换字符串,去空格,反转

    //定义一个可变字符串, Format后面可以跟字符串类型,也可以传入C语言的字符串数组 NSMutableString *str = [NSMutableString stringWithForma ...

  5. Oracle 给字符串补空格、补0

    利用lpad().RPAD()函数来实现给字符串补空格或补0的功能: 一.lpad()lpad函数将左边的字符串填充一些特定的字符其语法格式如下:lpad(string,n,[pad_string]) ...

  6. 字符串去空格 java , js和Jquery 方法

    1.  java方式 String.trim(); 2.js方式 function Trim(str) { return str.replace(/(^\s*)|(\s*$)/g, "&qu ...

  7. [js高手之路] 跟GhostWu一起封装一个字符串工具库-扩展trim,trimLeft,trimRight方法(2)

    我们接着上一篇的继续,在上一篇我们完成了工具库的架构,本文扩展字符串去空格的方法, 一共有3个 1,trimLeft: 去除字符串左边的空格 2,trimRight: 去除字符串右边的空格 3,tri ...

  8. [py]str list切片-去除字符串首尾空格-递归思想

    取出arr的前几项 #方法1 print([arr[0], arr[1]]) #方法2 arr2 = [] for i in range(2): arr2.append(arr[i]) print(a ...

  9. 字符串去掉空格 trim()方法

    jquery库提供了$.trim()方法,能直接用, 但没用库时FF里有效果,IE里就没实现, 解决办法:用正则替换 方法: function trimStr(str){return str.repl ...

随机推荐

  1. Java开发笔记(一百四十一)JavaFX的列表与表格

    下拉框只有在单击时才会弹出所有选项的下拉列表,这固然节省了有限的界面空间,但有时候又需要把所有选项都固定展示到窗口上.像这种平铺的列表控件,Swing给出的控件名称是ListBox,而JavaFX提供 ...

  2. mysql网文收录

    1.分布式事务 1)  聊聊分布式事务,再说说解决方案 https://www.cnblogs.com/savorboard/p/distributed-system-transaction-cons ...

  3. centos7编译安装memcached

    1.libevent 源码地址:https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/libevent ...

  4. 在Firefox中操作iframe的一个小问题

    在做一个 Web 的打印功能时,需要将被打印的文档写到 iframe 的 document 中. <!doctype html> <html lang="en"& ...

  5. application.yml报错:a global security auto-configuration is now provided

    报错原因: Spring Boot 1.5升级到2.0改动 security开头的配置及management.security均已过期 Actuator 配置属性变化 Endpoint变化 参考来源: ...

  6. 组件系列之RabbitMQ

    官网: https://www.rabbitmq.com/getstarted.html 1.四种交换机 TODO... 2.消费者获取消息方式:推 和 拉 拉取:每次拉取一条,循环拉取需要的条数在批 ...

  7. ADO.NET 一(概述)

    在 C# 语言中 ADO.NET 是在 ADO 的基础上发展起来的,ADO (Active Data Object) 是一个 COM 组件类库,用于访问数据库,而 ADO.NET 是在 .NET 平台 ...

  8. PreparedStatement和批处理

    1.概述 PreparedStatement 接口继承了 Statement,并与之在两方面有所不同,它表示预编译的 SQL 语句对象. 首先,数据库会对预编译语句提供性能优化.因为预编译语句有可能被 ...

  9. OpenWrt 中查看 Flash RAM CPU 信息

    OpenWrt 中查看 Flash RAM CPU 信息 来源  https://blog.csdn.net/mcusun2000/article/details/51130434 硬件: QCA95 ...

  10. 使用springboot实现一个简单的restful crud——03、前端页面、管理员登陆(注销)功能

    前言 这一篇我们就先引入前端页面和相关的静态资源,再做一下管理员的登陆和注销的功能,为后续在页面上操作数据做一个基础. 前端页面 前端的页面是我从网上找的一个基于Bootstrap 的dashboar ...