原文地址:https://www.cnblogs.com/zuizui1204/p/6595099.html

select trim ('    DWEYE   ') "TRIM e.g." from dual;   //删除字符串两边空格
select trim (both from ' DWEYE ') "TRIM e.g." from dual;  //both 删除字符串两边空格
select trim (trailing from ' DWEYE ') "TRIM e.g." from dual;  //trailing 删右边空格
select trim (leading from ' DWEYE ') "TRIM e.g." from dual;   //leading 删左边空格select trim ('x' from 'xxxxDWEYExxxx') "TRIM e.g." from dual;  //删除字符串两边的x   x只允许包含一个字符,不支持多字符。
select trim (both 'x' from 'xxxxDWEYExxxx') "TRIM e.g." from dual;   //both  删除字符串两边的x
select trim (trailing 'x' from 'xxxxDWEYExxxx') "TRIM e.g." from dual;  //trailing 删右边x
select trim (leading 'x' from 'xxxxDWEYExxxx') "TRIM e.g." from dual;    //leading 删左边xselect rtrim('xyxxDWEYExyyx','xy') "e.g." from dual;  //删除右边出现的x  y   可多个字符
select ltrim('xyxxDWEYExyyx','xy') "e.g." from dual;  //删除左边出现的x  y

Oracle TRIM函数是很常见的函数,下面对Oracle TRIM函数的语法作了详尽的阐述说明,希望可以让您对Oracle TRIM函数有更深的认识。

如果提到Oracle TRIM函数,最简单的功能就是使用它来去除字符串的行首和行尾的空格,这个功能也是大家使用频率最高的一种。
然而Oracle TRIM函数其实是具有删除“任意指定”字符的功能,不可谓不牛。我们来一次体验之旅。

1.先看一下Oracle TRIM函数的完整语法描述

TRIM([ { { LEADING | TRAILING | BOTH }
[ trim_character ]
| trim_character
}
FROM
]
trim_source
)

以上语法引自于Oracle 10gR2官方文档:http://download.oracle.com/docs/ ... 0/img_text/trim.htm
单从这个语法定义上我们就可以看出,小小的Oracle TRIM函数蕴含了更多可定制的功能。一一展示,供参考。

2.最简单的用法开始
不使用任何参数:
gloria@www.dweye.net> select trim (' DWEYE ') "TRIM e.g." from dual;

TRIM e.g
--------
DWEYE

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

3.其实第一种常用的方法等同于下面带有“BOTH”参数的写法
gloria@www.dweye.net> select trim (both from ' DWEYE ') "TRIM e.g." from dual;

TRIM e.g
--------
DWEYE

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

4.既然试用了BOTH参数,我们再看一下“TRAILING”和“LEADING”参数效果

gloria@www.dweye.net> select trim (trailing from ' DWEYE ') "TRIM e.g." from dual;

TRIM e.g.
------------
DWEYE

gloria@www.dweye.net> select trim (leading from ' DWEYE ') "TRIM e.g." from dual;

TRIM e.g.
------------
DWEYE

可见,使用“TRAILING”参数可以完成字符串尾部空格的删除功能;而“LEADING”参数正好相反,完成字符串头部空格的删除功能。
也就是说,使用“TRAILING”和“LEADING”参数可以指定空格的删除位置。

5.“trim_character”参数粉墨登场

这个参数改变了“删除空格”的默认行为。
如果想要删除字符串'xxxxDWEYExxxx'前后出现的“x”,“trim_character”参数就派上用场了。
gloria@www.dweye.net> select trim ('x' from 'xxxxDWEYExxxx') "TRIM e.g." from dual;

TRIM e.g
--------
DWEYE

配合“BOTH”、“TRAILING”和“LEADING”三个参数使用效果如下,与之前演示类似。看结果,不赘述。
gloria@www.dweye.net> select trim (both 'x' from 'xxxxDWEYExxxx') "TRIM e.g." from dual;

TRIM e.g
--------
DWEYE

gloria@www.dweye.net> select trim (trailing 'x' from 'xxxxDWEYExxxx') "TRIM e.g." from dual;

TRIM e.g.
------------
xxxxDWEYE

gloria@www.dweye.net> select trim (leading 'x' from 'xxxxDWEYExxxx') "TRIM e.g." from dual;

TRIM e.g.
------------
DWEYExxxx

6.需要注意的地方

这里的“trim_character”参数只允许包含一个字符,不支持多字符。
报错信息如下:
gloria@www.dweye.net> select trim (leading 'xy' from 'xyxxDWEYExyyx') "TRIM e.g." from dual;
select trim (leading 'xy' from 'xyxxDWEYExyyx') "TRIM e.g." from dual
*
ERROR at line 1:
ORA-30001: trim set should have only one character

既然TRIM不能满足我们删除只剩“DWEYE”字符串的要求,有么有其他手段呢?of course有。我们使用RTRIM和LTRIM“连环拳”完成这个任务。
1)使用RTRIM
gloria@www.dweye.net> select rtrim('xyxxDWEYExyyx','xy') "e.g." from dual;

e.g.
------------
xyxxDWEYE

2)使用LTRIM
gloria@www.dweye.net> select ltrim('xyxxDWEYExyyx','xy') "e.g." from dual;

e.g.
------------
DWEYExyyx

3)联合使用RTRIM和LTRIM函数达到我们的目的
gloria@www.dweye.net> select ltrim(rtrim('xyxxDWEYExyyx','xy'),'xy') "e.g." from dual;

e.g.
--------
DWEYE

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

7.小结

在感受Oracle函数带来便利的同时,建议对每一个常用函数都追本溯源地探究一下,也许在尝试之后您会发现:哦,原来大家经常用到这些方法只是其真实功能的沧海一粟。

以下是其它网友的补充:

如 trim('字符1' from '字符串2') ,字符1只能是单个字符。

1. trim()删除字符串两边的空格。
2. ltrim()删除字符串左边的空格。
3. rtrim()删除字符串右边的空格。
4. trim('字符1' from '字符串2') 分别从字符2串的两边开始,删除指定的字符1。
5. trim([leading | trailing | both] trim_char from string) 从字符串String中删除指定的字符trim_char。
leading:从字符串的头开始删除。
trailing:从字符串的尾部开始删除。
borth:从字符串的两边删除。
6. tim()只能删除半角空格。

For example:
trim(' tech ') would return 'tech';
trim(' ' from ' tech ') would return 'tech';
trim(leading '0' from '000123') would return '123';
trim(trailing '1' from 'Tech1') would return 'Tech';
trim(both '1' from '123Tech111') would return '23Tech';

oracle中的trim函数

Oracle中的trim函数是用来删除给定字符串或者给定数字中的头部或者尾部的给定字符。
trim函数具有如下的形式

trim([leading/trailing/both][匹配字符串或数值][from][需要被处理的字符串或数值])

这里如果指明了leading表示从删除头部匹配的字符串,如果指明了trailing表示从删除尾部匹配的字符串,如果指明了both,或者不指明任何位置,则两端都将被删除

如果不指明任何匹配字符串或数值则认为是空格,即删除前面或者后面的空格。

trim函数返回的类型是varchar2

下面是一些例子:

截去了数字7500的后面的两个0

SQL> select trim(0 from 7500) from dual;

TRIM

—-

75

下面的例子截去了' 中秋八月中'前后的两个'中'字

SQL> select trim('中‘ from ‘中秋八月中‘) as 诗 from dual;

——————

秋八月

下面的例子截去了' 半夜二更半'前面的一个'半'字

SQL> select trim(leading ‘半‘ from ‘半夜二更半‘) as 诗 from dual;

【转】SQL中的trim函数相关推荐

  1. SQL 中的 TRIM 函数

    SQL 中的 TRIM 函数是用来移除掉一个字串中的字头或字尾.最常见的用途是移除字首或字尾的空白.这个函数在不同的资料库中有不同的名称: MySQL: TRIM( ), RTRIM( ), LTRI ...

  2. sql中的trim()以及translate()函数

    oracle 函数 介绍一下sql中的trim()以及translate()函数 首先说一下trim(),trim()和我们接触的编程语言一样也是用来去掉前后空格的,LTRIM(),RTRIM(),T ...

  3. sql中截取字符串函数_SQL Server 2017中的顶级SQL字符串函数

    sql中截取字符串函数 SQL Server 2017 has been in the talk for its many features that simplify a developer's l ...

  4. oracle中的trim函数使用介绍

    Oracle TRIM函数是很常见的函数,下面对Oracle TRIM函数的语法作了详尽的阐述说明,希望可以让您对Oracle TRIM函数有更深的认识. 如果提到Oracle TRIM函数,最简单的 ...

  5. oracle dbms_lob trim,oracle中的trim函数使用介绍

    Oracle TRIM函数是很常见的函数,下面对Oracle TRIM函数的语法作了详尽的阐述说明,希望可以让您对Oracle TRIM函数有更深的认识. 如果提到Oracle TRIM函数,最简单的 ...

  6. 在SQL中使用CRL函数示例

    在SQL中使用CRL函数 实验目标: 1. 在SQL中创建CRL函数,使之能够向指定的计算机发送消息 实验步骤 2. 在VS中创建类发送消息的类 3. 将以下代码黏贴进去 using System; ...

  7. java中的string函数_java中string.trim()函数的作用实例及源码

    trim()的作用:去掉字符串首尾的空格. public static void main(String arg[]){ String a=" hello world "; Str ...

  8. sql 精读(二) 标准 SQL 中的编号函数

    标准 SQL 中的编号函数 以下部分介绍了 BigQuery 支持的编号函数.编号函数是分析函数的一部分. 如需了解分析函数的工作原理,请参阅分析函数概念.如需了解编号函数的工作原理,请参阅编号函数概 ...

  9. java中trim_java中string.trim()函数的作用实例及源码

    trim()的作用:去掉字符串首尾的空格. public static void main(String arg[]){ String a=" hello world "; Str ...

最新文章

  1. 逻辑回归 + GBDT模型融合实战!
  2. 数据科学工具 Jupyter Notebook 教程(二)
  3. 【Netty】Netty 入门案例分析 ( Netty 模型解析 | Netty 服务器端代码 | Netty 客户端代码 )
  4. mysql删除重复的判断_MySQL中查询、删除重复记录一共有多少种方法?
  5. 【uniapp】CSS3 的 calc() 函数使用表达式动态计算
  6. 黑马程序员——java基础---多线程(二)
  7. ad中电源插座怎么封装_您可以在房屋中安装的各种电源插座
  8. ArrayList实现线程的几种方法
  9. Java 11:String类中的新方法
  10. 【WCF】WCF服务库和WCF服务应用程序的区别
  11. SSH key的生成及使用
  12. php的入门是html5,h5自学教程:6个适合初学者的零基础html5入门自学教程推荐
  13. 疫情时代无接触AI人脸识别技术助力智慧工地迅猛发展
  14. tp交换机管理页面_tplink交换机怎么设置_tplink交换机使用方法 | tplogin.cn
  15. 金山毒霸系统清理专家
  16. 与一名上海学生深度交流上大学的事
  17. 使用rust和actix实现一个视频流服务器
  18. GANerated Hands for Real-Time 3D Hand Tracking from Monocular RGB
  19. 在Linux安装两个MySQL5.7数据库实例
  20. 把codeblock变好看

热门文章

  1. 区块链社区建设难:难在项目自身,也难在社区载体 |链捕手
  2. “数据中心专区”约稿函
  3. [POI2009]KAM-Pebbles
  4. Simulink覆盖度详解-模型覆盖度
  5. 输入一个年月日,计算这一天到公元元年有多少天
  6. scau 2021春数据结构试题
  7. 如何将echarts图标的显示/隐藏按钮改成圆形
  8. 智邦国际ERP系统帮助企业控制成本
  9. OCR 中文汉字识别,可用于文档识别,身份证识别,名片识别,采用字库+卷积神经网络...
  10. linux修复丢失的分区表