適用於:SQL Server 2017 (14.x) 及以後版本
Azure SQL 資料庫
Azure SQL 管理實例
Azure Synapse Analytics
Microsoft Fabric 中的 SQL 分析端點
Microsoft Fabric 中的
Warehouse 與 Microsoft Fabric 中的 SQL 資料庫
從字串的開頭和結尾移除空白字元 char(32) 或其他指定字元。
從 SQL Server 2022 (16.x) 開始,選擇性地從字串開頭、結尾或兩側移除空格字元 char(32) 或其他指定的字元。
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 才能使用 LEADING、 TRAILING或 BOTH 關鍵詞。
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 字元類型 (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