分享方式:


TRIM (Transact-SQL)

適用於: sql Server 2017 (14.x) 和更新版本的 Azure SQL 資料庫 Azure SQL 受控執行個體 Microsoft Fabric Microsoft Fabric 倉儲中的 Azure Synapse Analytics SQL 分析端點

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

選擇性地從字串的開頭、結尾或兩側移除空格字元 char(32) 或其他指定的字元。

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

Transact-SQL 語法慣例

Syntax

SQL Server 2022 (16.x) 和舊版、Azure SQL 資料庫 和 Azure Synapse Analytics 的語法:

TRIM ( [ characters FROM ] string )

SQL Server 2022 (16.x) 和更新版本的語法、Azure SQL 受控執行個體 和Microsoft Fabric:

重要

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

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

引數

[ LEADING | TRAILING | BOTH ]

適用於:SQL Server 2022 (16.x) 和更新版本、Azure SQL 受控執行個體 和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 關鍵詞。

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

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

結果集如下所示。

abc