前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >SQL函数 TRIM

SQL函数 TRIM

作者头像
用户7741497
发布于 2022-08-02 01:54:14
发布于 2022-08-02 01:54:14
2.3K00
代码可运行
举报
文章被收录于专栏:hml_知识记录hml_知识记录
运行总次数:0
代码可运行

SQL函数 TRIM

字符串函数,它返回删除了指定的前导和/或尾随字符的字符串。

大纲

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
TRIM([end_keyword] [characters FROM] string-expression)

参数

  • end_keyword - 可选 — 一个关键字,指定要剥离的字符串表达式的哪一端。可用值为 LEADINGTRAILINGBOTH。默认为两者。
  • characters - 可选 — 一个字符串表达式,指定要从字符串表达式中删除的字符。指定字符的每个实例都从指定的末端被剥离,直到遇到此处未指定的字符。因此TRIM(BOTH 'ab' FROM 'bbbaacaaa') 返回 ‘c’。在此示例中,BOTH 关键字是可选的。如果未指定字符,TRIM 会去除空格。如果指定了字符,则需要 FROM 关键字。如果指定了 end_keyword 而未指定字符,则允许使用 FROM 关键字(但不是必需的)。如果没有指定这些参数,则不允许使用 FROM 关键字。
  • string-expression - 要剥离的字符串表达式。字符串表达式可以是列名、字符串文字或另一个函数的结果,其中基础数据类型可以表示为任何字符类型(例如 CHARVARCHAR2)。如果省略了字符和 end_keyword,则省略 FROM 关键字。

描述

TRIM 从提供的值的开头和/或结尾去除指定的字符。默认情况下,去除字母是区分大小写的。当遇到未在字符中指定的字符时,从任一端停止字符剥离。默认是从字符串表达式的两端去除空格。

无论要修剪的输入表达式的数据类型如何,TRIM 始终返回数据类型 VARCHAR

请注意,在将数字提供给 TRIM 或任何其他 SQL 函数之前,它们会自动从数字中去除前导零。要保留前导零,必须将数字指定为字符串。

可选的 end_keyword 参数可以采用以下值:

  • LEADING - 关键字,指定要从 string-expression 的开头删除 characters 中的字符。
  • TRAILING - 关键字,指定要从 string-expression 的末尾删除 characters 中的字符。
  • BOTH - 关键字,指定要从 string-expression 的开头和结尾删除 characters 中的字符。 BOTH 是默认值,如果未指定 end_keyword 则使用。

或者,可以使用 LTRIM 修剪前导空白,或使用 RTRIM 修剪尾随空白。

要使用前导或尾随空格或其他字符填充字符串,请使用 LPADRPAD

可以使用 LENGTH 函数来确定是否已从字符串中删除或添加空格。

要剥离的字符

  • 所有字符:如果字符包含 string-expression 中的所有字符,则 TRIM 返回一个空字符串。
  • 单引号字符:如果单引号字符在字符和字符串表达式中都是双引号,则Trim可以删减这些字符。因此,TRIM(BOTH 'a''b' FROM 'bb''ba''acaaa''')返回’c‘
  • 空格:如果省略字符,TRIM 会从字符串表达式中修剪空格。如果指定了字符,则必须包含空格字符以去除空格。
  • %List:如果 string-expression%ListTRIM 只能修剪尾随字符,不能修剪前导字符。这是因为 %List 包含前导编码字符。必须将 %List 转换为字符串才能将 TRIM 应用于前导字符。
  • NULL:如果任一字符串表达式为 NULLTRIM 将返回 NULL

示例

以下示例使用 end_keywordcharacters 默认值;它从“abc”中删除前导和尾随空格。选择项将“^”连接到字符串的两端以显示空白。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT '^'||'   abc   '||'^' AS UnTrimmed,'^'||TRIM('   abc   ')||'^' AS Trimmed


^   abc   ^ ^abc^

以下示例都是从字符串表达式中去除前导空格的有效语法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT TRIM(LEADING '   abc   '),TRIM(LEADING FROM '   def   '),TRIM(LEADING ' ' FROM '   ghi   ')

abc     def     ghi   

以下示例从字符串“xxxabcxxx”的开头删除字符“x”,得到“abcxxx”

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT TRIM(LEADING 'x' FROM 'xxxabcxxx') AS Trimmed

abcxxx

以下示例均删除了“xxxabcxxx”开头和结尾的字符“x”,结果为“abc”。第一个指定 BOTH,第二个将 BOTH 作为默认值:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT TRIM(BOTH 'x' FROM 'xxxabcxxx') AS Trimmed

abc
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT TRIM('x' FROM 'xxxabcxxx') AS Trimmed

abc

以下示例从“abcxzzxyyyyz”的末尾删除字符“xyz”的所有实例,从而产生“abc”

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT TRIM(TRAILING 'xyz' FROM 'abcxzzxyyyyz') AS Trimmed.

abc

下面的示例去掉FirstName中的所有字母,返回前面有空格的姓氏,从而修剪FullName。例如FirstName/Fullname‘fred’/‘fred Rogers’返回‘Rogers’。在本例中,FirstName‘Annie’将从LastName中去掉‘Ann’‘Anne’‘Ani’‘Ain’‘Annee’‘Annie’,但不会完全去掉‘Anna’,因为Trim区分大小写;只会去掉‘A’,而不是‘a’

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT TRIM(LEADING FirstName FROM FullName) FROM Sample.Person

以下示例从FavoriteColors值中删除前导字母"B""R"。请注意,必须将列表转换为字符串,才能对前导字符应用剪裁:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT TOP 15 Name,FavoriteColors,
       TRIM(LEADING 'BR' FROM $LISTTOSTRING(FavoriteColors)) AS Trimmed
       FROM Sample.Person WHERE FavoriteColors IS NOT NULL

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验