TRIM (Transact-SQL)
適用対象: SQL Server 2017 (14.x) 以降 Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Microsoft Fabric のSQL 分析エンドポイント Microsoft Fabric のウェアハウス
文字列の先頭と末尾にあるスペース文字 char(32)
または他の指定した文字を削除します。
文字列の先頭、末尾、または両端にある空白文字 char(32)
またはその他の指定した文字を必要に応じて削除します。
SQL Server 2022 (16.x) 以降では、文字列の先頭、末尾、または両端にある空白文字 char(32)
またはその他の指定した文字を必要に応じて削除します。
構文
SQL Server 2022 (16.x) 以前のバージョン、Azure SQL Database、Azure Synapse Analytics の構文:
TRIM ( [ characters FROM ] string )
SQL Server 2022 (16.x) 以降のバージョン、Azure SQL Managed Instance、Microsoft Fabric の構文:
重要
LEADING
、TRAILING
、または BOTH
キーワードを使うには、データベース互換レベルを 160
に設定する必要があります。
TRIM ( [ LEADING | TRAILING | BOTH ] [characters FROM ] string )
引数
[ LEADING | TRAILING | BOTH ]
適用対象: SQL Server 2022 (16.x) 以降のバージョン、Azure SQL Managed Instance、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. 文字列の先頭から指定した文字を削除する
重要
LEADING
、TRAILING
、または BOTH
キーワードを使うには、データベース互換レベルを 160
に設定する必要があります。
次の例では、先頭の .
を、単語 test
の前の文字列の先頭から削除します。
SELECT TRIM(LEADING '.,! ' FROM ' .# test .') AS Result;
結果セットは次のとおりです。
# test .
D. 文字列の末尾から指定した文字を削除する
重要
LEADING
、TRAILING
、または BOTH
キーワードを使うには、データベース互換レベルを 160
に設定する必要があります。
次の例では、末尾の .
を、単語 test
の後の文字列の末尾から削除します。
SELECT TRIM(TRAILING '.,! ' FROM ' .# test .') AS Result;
結果セットは次のとおりです。
.# test
E. 文字列の先頭と末尾から指定した文字を削除する
重要
LEADING
、TRAILING
、または BOTH
キーワードを使うには、データベース互換レベルを 160
に設定する必要があります。
次の例では、123abc123
文字列の先頭と末尾から文字 123
を削除します。
SELECT TRIM(BOTH '123' FROM '123abc123') AS Result;
結果セットは次のとおりです。
abc