适用于:SQL Server 2017 (14.x) 及以后版本
Azure SQL 数据库
Azure SQL 托管实例
Azure Synapse Analytics
Microsoft Fabric 中的 SQL 分析端点 Microsoft Fabric
中的Warehouse 中的Microsoft Fabric
中的 SQL 数据库
Tip
Microsoft Fabric Data Warehouse是数据湖基础上的企业规模关系仓库,具有未来就绪的体系结构、内置 AI 和新功能。 如果不熟悉数据仓库,请从Fabric Data Warehouse开始。 现有的指定 SQL 池工作负荷可以升级到 Fabric,以跨数据科学、实时分析和报告访问新功能。
删除字符串开头和结尾的空格字符 char(32) 或其他指定字符。
从 SQL Server 2022 (16.x) 开始,可以移除字符串的开头、末尾或首尾空格字符 char(32) 或其他指定字符。
语法
SQL Server 2019(15.x)及更早版本的语法,以及Azure Synapse Analytics:
TRIM ( [ characters FROM ] string )
SQL Server 2022(16.x)及以后版本、Azure SQL 托管实例、Azure SQL 数据库 和 Microsoft Fabric 的语法:
重要
你将需要将数据库兼容性级别设置为 160 才能使用 LEADING、TRAILING 或 BOTH 关键字。
TRIM ( [ LEADING | TRAILING | BOTH ] [characters FROM ] string )
参数
[ LEADING |尾随 |两者 ]
适用于: SQL Server 2022(16.x)及以后版本,Azure SQL 托管实例、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 关键字。
以下示例删除字符串 123 开头和末尾的字符 123abc123。
SELECT TRIM(BOTH '123' FROM '123abc123') AS Result;
结果集如下。
abc