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)
或其他指定的字元。
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
才能使用 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
(預設位置行為) 會從字串開頭和結尾移除指定的字元。
「字元」
應移除所含字元的任何非 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