TRIM (Transact-SQL)
适用于:SQL Server 2017 (14.x) 及更高版本
Azure SQL 数据库
Azure SQL 托管实例
Azure Synapse Analytics
Microsoft Fabric 中的 SQL 终结点
Microsoft Fabric 中的仓库
删除字符串开头和结尾的空格字符 char(32)
或其他指定字符。
从 SQL Server 2022 (16.x) 开始,可以选择从字符串的开头和/或末尾删除空格字符 char(32)
或其他指定字符。
语法
SQL Server 2022 (16.x) 之前版本的 SQL Server、Azure SQL 数据库、Azure Synapse Analytics 和 Microsoft Fabric 的语法:
TRIM ( [ characters FROM ] string )
2022 (16.x) 及更高版本和 Azure SQL 托管实例的语法:
重要
你将需要将 SQL Server 数据库兼容性级别设置为 160 才能使用 LEADING
、TRAILING
或 BOTH
关键字。
LEADING
、TRAILING
或 BOTH
关键字目前在 Microsoft Fabric 中不受支持。
TRIM ( [ LEADING | TRAILING | BOTH ] [characters FROM ] string )
注意
若要查看 SQL Server 2014 及更早版本的 Transact-SQL 语法,请参阅早期版本文档。
参数
[ LEADING | TRAILING | BOTH ]
适用于:SQL Server 2022 (16.x) 及更高版本和 Azure SQL 托管实例:
可选的第一个自变量指定要剪裁的字符串的哪一侧:
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. 删除字符串开头的指定字符
重要
你将需要将 SQL Server 数据库兼容性级别设置为 160 才能使用 LEADING
、TRAILING
或 BOTH
关键字。
LEADING
、TRAILING
或 BOTH
关键字目前在 Microsoft Fabric 中不受支持。
以下示例从单词 test
前的字符串开头删除前导 .
。
SELECT TRIM(LEADING '.,! ' FROM ' .# test .') AS Result;
下面是结果集。
# test .
D. 删除字符串末尾的指定字符
重要
你将需要将 SQL Server 数据库兼容性级别设置为 160 才能使用 LEADING
、TRAILING
或 BOTH
关键字。
LEADING
、TRAILING
或 BOTH
关键字目前在 Microsoft Fabric 中不受支持。
以下示例从单词 test
后的字符串末尾删除尾随 .
。
SELECT TRIM(TRAILING '.,! ' FROM ' .# test .') AS Result;
下面是结果集。
.# test
E. 删除字符串开头和末尾的指定字符
重要
你将需要将 SQL Server 数据库兼容性级别设置为 160 才能使用 LEADING
、TRAILING
或 BOTH
关键字。
LEADING
、TRAILING
或 BOTH
关键字目前在 Microsoft Fabric 中不受支持。
以下示例删除字符串 123abc123
开头和末尾的字符 123
。
SELECT TRIM(BOTH '123' FROM '123abc123') AS Result;
下面是结果集。
abc