共用方式為


修剪 (Transact-SQL)

適用於:SQL Server 2017 (14.x) 及以後版本 Azure SQL 資料庫Azure SQL 管理實例Azure Synapse AnalyticsMicrosoft Fabric 中的 SQL 分析端Microsoft Fabric 中的Warehouse 與 Microsoft Fabric 中的 SQL 資料庫

從字串的開頭和結尾移除空白字元 char(32) 或其他指定字元。

從 SQL Server 2022 (16.x) 開始,選擇性地從字串開頭、結尾或兩側移除空格字元 char(32) 或其他指定的字元。

Transact-SQL 語法慣例

Syntax

SQL Server 2019(15.x)及更早版本的語法,以及 Azure Synapse Analytics:

TRIM ( [ characters FROM ] string )

SQL Server 2022(16.x)及以後版本、Azure SQL Managed Instance、Azure SQL Database 及 Microsoft Fabric 的語法:

重要

您必須將資料庫相容性層級設定為 , 160 才能使用 LEADINGTRAILINGBOTH 關鍵詞。

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

引數

[ 領先 |尾隨 |兩者 ]

適用於: SQL Server 2022(16.x)及後續版本、Azure SQL Managed Instance、Azure SQL Database 及 Microsoft Fabric:

選擇性的第一個引數會指定要修剪字串的哪一端:

  • LEADING 會從字串開頭移除指定的字元。

  • TRAILING 會從字串結尾移除指定的字元。

  • BOTH (預設位置行為) 會從字串開頭和結尾移除指定的字元。

「字元」

應移除所含字元的任何非 LOB 字元類型 (NvarcharvarcharNcharchar) 的常值、變數或函式呼叫。 不允許 nvarchar(max)varchar(max) 類型。

string

任何字元類型的表達式(nvarchar、varcharncharchar),其中應該移除字元。

傳回類型

以字串引數的類型傳回字元運算式,其中空白字元 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 關鍵詞。

下列範例會從 123 字串的開頭和結尾移除 123abc123 字元。

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

結果集如下所示。

abc