TRIM (Transact-SQL)

适用于: SQL Server 2017 (14.x) 及更高版本 Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics

删除字符串开头和结尾的空格字符 char(32) 或其他指定字符。

从 SQL Server 2022 (16.x) 预览版开始,可以选择从字符串的开头和/或末尾删除空格字符 char(32) 或其他指定字符。

Transact-SQL 语法约定

语法

SQL Server 和 Azure SQL 数据库的语法:

TRIM ( [ characters FROM ] string )

SQL Server 2022 (16.x) 预览版及更高版本的语法:

重要

你将需要将数据库兼容性级别设置为 160 才能使用 LEADINGTRAILINGBOTH 关键字。

TRIM ( [ LEADING | TRAILING | BOTH ] [characters FROM ] string )

Azure SQL 数据库的语法:

TRIM ( [ characters FROM ] string )

Azure Synapse Analytics 的语法:

TRIM ( string )

注意

若要查看 SQL Server 2014 及更早版本的 Transact-SQL 语法,请参阅早期版本文档

参数

[ LEADING | TRAILING | BOTH ]

适用于:SQL Server 2022 (16.x) 预览版及更高版本。

可选的第一个自变量指定要剪裁的字符串的哪一侧:

  • LEADING 删除字符串开头的指定字符。

  • TRAILING 删除字符串末尾的指定字符。

  • BOTH(默认位置行为)删除字符串开头和末尾的指定字符。

characters

任何非 LOB 字符类型(nvarcharvarcharncharchar)的文本、变量或函数调用,其中包含应删除的字符。 禁止使用 nvarchar(max)varchar(max) 类型。

string

任何字符类型(nvarcharvarcharncharchar)的表达式,其中应删除字符。

返回类型

返回一个字符串参数类型的字符表达式,其中已从两侧删除空格字符 char(32) 或其他指定字符。 如果输入字符串是 NULL,则返回 NULL

注解

默认情况下,TRIM 函数删除字符串开头和末尾的空格字符。 此行为等同于 LTRIM(RTRIM(@string))

若要在 SQL Server 2022 (16.x) 预览版中启用可选的 LEADINGTRAILINGBOTH 位置参数,当执行查询时,必须在连接到的数据库上启用数据库兼容性级别 160

  • 使用可选的 LEADING 位置参数,行为等同于 LTRIM(@string, characters)
  • 使用可选的 TRAILING 位置参数,行为等同于 RTRIM(@string, characters)

示例

A. 删除字符串两侧的空格字符

以下示例删除了 test 一词前后的空格。

SELECT TRIM( '     test    ') AS Result;

下面是结果集:

test

B. 删除字符串两侧的指定字符

以下示例提供要从字符串中删除的可能字符的列表。

SELECT TRIM( '.,! ' FROM '     #     test    .') AS Result;

下面是结果集:

#     test

在此示例中,仅删除 # 前和单词 test 后的尾随句点和空格。 其他字符被忽略,因为它们并不存在于字符串中。

C. 删除字符串开头的指定字符

重要

你将需要将数据库兼容性级别设置为 160 才能使用 LEADINGTRAILINGBOTH 关键字。

以下示例从单词 test 前的字符串开头删除前导 .

SELECT TRIM(LEADING '.,! ' FROM  '     .#     test    .') AS Result;

下面是结果集。

# test .

D. 删除字符串末尾的指定字符

重要

你将需要将数据库兼容性级别设置为 160 才能使用 LEADINGTRAILINGBOTH 关键字。

以下示例从单词 test 后的字符串末尾删除尾随 .

SELECT TRIM(TRAILING '.,! ' FROM '     .#     test    .') AS Result;

下面是结果集。

.#     test

E. 删除字符串开头和末尾的指定字符

重要

你将需要将数据库兼容性级别设置为 160 才能使用 LEADINGTRAILINGBOTH 关键字。

以下示例删除字符串 123abc123 开头和末尾的字符 123

SELECT TRIM(BOTH '123' FROM '123abc123') AS Result;

下面是结果集。

abc

请参阅