TRIM (Transact-SQL)

適用対象: SQL Server 2017 (14.x) 以降 Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsMicrosoft Fabric の SQL 分析エンドポイントMicrosoft Fabric のウェアハウス

文字列の先頭と末尾にあるスペース文字 char(32) または他の指定した文字を削除します。

文字列の先頭、末尾、または両端にある空白文字 char(32) またはその他の指定した文字を必要に応じて削除します。

SQL Server 2022 (16.x) 以降では、文字列の先頭、末尾、または両端にある空白文字 char(32) またはその他の指定した文字を必要に応じて削除します。

Transact-SQL 構文表記規則

構文

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 の構文:

重要

LEADINGTRAILING、または BOTH キーワードを使うには、データベース互換レベルを 160 に設定する必要があります。

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

Note

SQL Server 2014 (12.x) 以前のバージョンの Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。

引数

[ LEADING | TRAILING | BOTH ]

適用対象: SQL Server 2022 (16.x) 以降のバージョン、Azure SQL Managed Instance、Microsoft Fabric:

省略可能な最初の引数では、文字列のどちらの側をトリミングするかを指定します。

  • LEADING では、文字列の先頭から指定した文字を削除します。

  • TRAILING では、文字列の末尾から指定した文字を削除します。

  • BOTH (既定の位置指定動作) では、文字列の先頭と末尾から指定した文字を削除します。

characters

削除する必要がある文字を含む LOB 以外の任意の文字型 (nvarcharvarcharnchar、または char) のリテラル、変数、または関数呼び出しです。 nvarchar(max) 型と varchar(max) 型は使用できません。

string

文字を削除する必要がある任意の文字型 (nvarcharvarcharnchar、または char) の式。

戻り値の型

空白文字 char(32) または他の指定した文字が両側から削除される、文字列引数の型を持つ文字式を返します。 入力文字列が NULL の場合は NULL を返します。

解説

既定では、TRIM 関数によって、文字列の先頭と末尾の両方から空白文字が削除されます。 この動作は LTRIM(RTRIM(@string)) と同等です。

SQL Server 2022 (16.x) でオプションの LEADINGTRAILING、または 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. 文字列の先頭から指定した文字を削除する

重要

LEADINGTRAILING、または BOTH キーワードを使うには、データベース互換レベルを 160 に設定する必要があります。

次の例では、先頭の . を、単語 test の前の文字列の先頭から削除します。

SELECT TRIM(LEADING '.,! ' FROM  '     .#     test    .') AS Result;

結果セットは次のようになります。

# test .

D. 文字列の末尾から指定した文字を削除する

重要

LEADINGTRAILING、または BOTH キーワードを使うには、データベース互換レベルを 160 に設定する必要があります。

次の例では、末尾の . を、単語 test の後の文字列の末尾から削除します。

SELECT TRIM(TRAILING '.,! ' FROM '     .#     test    .') AS Result;

結果セットは次のようになります。

.#     test

E. 文字列の先頭と末尾から指定した文字を削除する

重要

LEADINGTRAILING、または BOTH キーワードを使うには、データベース互換レベルを 160 に設定する必要があります。

次の例では、123abc123 文字列の先頭と末尾から文字 123 を削除します。

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

結果セットは次のようになります。

abc