TRIM (Transact-SQL)
适用于: sql Server 2017 (14.x) 及更高版本Azure SQL 数据库 Azure SQL 托管实例 Microsoft Fabric Microsoft Fabric Warehouse 中的 Azure Synapse Analytics SQL 分析终结点
删除字符串开头和结尾的空格字符 char(32)
或其他指定字符。
还可以移除字符串的开头、末尾或首尾空格字符 char(32)
或其他指定字符。
从 SQL Server 2022 (16.x) 开始,可以移除字符串的开头、末尾或首尾空格字符 char(32)
或其他指定字符。
语法
SQL Server 2022 (16.x) 及更低版本、Azure SQL 数据库和 Azure Synapse Analytics 的语法:
TRIM ( [ characters FROM ] string )
SQL Server 2022 (16.x) 及更高版本、Azure SQL 托管实例和 Microsoft Fabric 的语法:
重要
你将需要将数据库兼容性级别设置为 160
才能使用 LEADING
、TRAILING
或 BOTH
关键字。
TRIM ( [ LEADING | TRAILING | BOTH ] [characters FROM ] string )
参数
[ LEADING | TRAILING | BOTH ]
适用于:SQL Server 2022 (16.x) 及更高版本、Azure SQL 托管实例和 Microsoft Fabric:
可选的第一个自变量指定要剪裁的字符串的哪一侧:
LEADING
将移除字符串开头的指定字符。TRAILING
将移除字符串末尾的指定字符。BOTH
(默认位置行为)价格移除字符串开头和末尾的指定字符。
characters
任何非 LOB 字符类型(nvarchar、varchar、nchar 或 char)的文本、变量或函数调用,其中包含应删除的字符。 不允许使用 nvarchar(max) 和 varchar(max) 类型。
string
要移除字符的任意字符类型表达式(nvarchar、varchar、nchar 或 char)。
返回类型
返回一个字符串参数类型的字符表达式,其中已从两侧删除空格字符 char(32)
或其他指定字符。 如果输入字符串是 NULL
,则返回 NULL
。
注解
默认情况下,TRIM
函数删除字符串开头和末尾的空格字符。 此行为等同于 LTRIM(RTRIM(@string))
。
要在 SQL Server 2022 (16.x) 中启用可选的 LEADING
、TRAILING
或 BOTH
位置参数,则必须在执行查询时,在要连接到的数据库上启用数据库兼容性级别 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
才能使用 LEADING
、TRAILING
或 BOTH
关键字。
以下示例从单词 test
前的字符串开头删除前导 .
。
SELECT TRIM(LEADING '.,! ' FROM ' .# test .') AS Result;
结果集如下。
# test .
D. 删除字符串末尾的指定字符
重要
你将需要将数据库兼容性级别设置为 160
才能使用 LEADING
、TRAILING
或 BOTH
关键字。
以下示例从单词 test
后的字符串末尾删除尾随 .
。
SELECT TRIM(TRAILING '.,! ' FROM ' .# test .') AS Result;
结果集如下。
.# test
E. 删除字符串开头和末尾的指定字符
重要
你将需要将数据库兼容性级别设置为 160
才能使用 LEADING
、TRAILING
或 BOTH
关键字。
以下示例删除字符串 123abc123
开头和末尾的字符 123
。
SELECT TRIM(BOTH '123' FROM '123abc123') AS Result;
结果集如下。
abc