この記事では、新しいSQLTRIM関数について説明します。 SQL Server 2017以降は、LTRIMやRTRIMなどの以前の文字列関数に関する情報を提供します。
SQL開発者は通常、文字列の先頭または末尾、あるいはその両方にスペースがあるという問題に直面します。文字列から先頭と末尾の文字を削除する必要がある場合があります。 SQL関数でも文字列操作を行う必要があるかもしれません。文字列の末尾からスペースを削除したい場合は、SQL Server2016までSQLLTRIM関数とRTRIM関数を使用する必要があります。
SQL Server 2017では、次の新しい組み込み関数を取得します。単一の関数で先頭と末尾の両方の文字をトリミングします。 SQL TRIM関数は、指定された文字列から文字を削除する追加機能を提供します。 RTRIMおよびLTRIM関数はSQLServer2017でも引き続き使用できます。これらの関数を例を挙げて調べてみましょう。
SQLLTRIM関数
指定された文字列の先頭(左側から開始)から文字を削除します。次のクエリでは、文字列の前後に空白があります。 LTRIM関数を使用して、文字列の左側からスペースを削除する必要があります。
SQL DATALENGTH()関数を使用して、SQLLTRIM関数を使用する前後のデータ長をバイト単位で計算します。
- 元の文字列のデータ文字列サイズ(バイト単位):24
- SQL LTRIM後のデータ文字列サイズ(バイト単位):18
SQLRTRIM関数
指定した文字列の末尾((右側から)から文字を削除します。次のクエリを実行して、SQLRTRIM関数の効果を確認してみましょう。
- 元の文字列のデータ文字列サイズ(バイト単位):24
- SQL RTRIM後のデータ文字列サイズ(バイト単位):16
SQL Server2017のTRIM関数
SQL Server 2017より前では、先行スペースとトレーニングスペースの両方を削除する必要がある場合は、LTRIM関数とRTRIM関数の両方を使用する必要があります。次のクエリでは、文字列変数でLTRIM関数とRTIM関数の両方を使用しました。
次のスクリーンショットでは、先頭とtraの両方が削除されていることがわかります。文字列からのスペース。
- 元の文字列のデータ文字列サイズ(バイト単位):24
- SQL LTRIM後のデータ文字列サイズ(バイト単位):11
- 元の文字列のデータ文字列サイズ(バイト単位):25
- SQL LTRIMおよびRTRIM後のデータ文字列サイズ(バイト単位):11
文字列からスペースを削除するには、2つの関数を使用する必要があります。 SQL Server 2017以降のTRIM関数の単一インスタンスを使用して、先頭と末尾の両方の文字をトリミングできます。この記事の次のセクションでTRIM関数について説明します。
TRIM関数の構文
1
|
TRIM(文字列)
|
- TrimCharacter:文字列から削除する文字を指定できます。デフォルトでは、SQLServerは文字列の両側からスペースを削除します
- 文字列:トリミングする文字列を指定する必要があります
SQLTRIM関数を調べてみましょう例。
TRIMリーディングスペースとトレーニングスペース:
デフォルトでは、Trim関数は文字列の両側からスペースを削除します。次のクエリでは、文字列の両側にスペースを入れて文字列を定義する必要があります。
次のクエリを実行します:
TRIM関数で削除する文字を指定しませんでした。出力では、SQLTRIM関数が先頭と末尾の両方のスペースを削除します。
TRIM関数の前後で文字列の長さの違いに気付くこともあります。
- 元の文字列のデータ文字列サイズ(バイト単位):24
- SQL TRIM後のデータ文字列サイズ(バイト単位):11
文字列の先頭文字:
前の例では、SQLTRIMがRTRIMとLTRIMの代わりになることを確認しました。文字列の前後のすべてのスペース文字を削除することを排除します。 TRIMを使用して、文字列から文字を削除することもできます。文字列から文字ONを削除したい場合は、次のスクリプトに従ってTRIM関数で指定できます。
指定された文字を先頭と末尾の両方でチェックし、特定の文字を削除します。文字列Applicationでは、先頭側に文字ONがあります。次のスクリーンショットでは、TRIM関数の後の出力を見ることができます。
- データ文字列サイズ(バイト単位)元の文字列の場合:11
- SQL TRIM後のバイト単位のデータ文字列サイズ:9
もう1つの例を見てみましょう。今回は先頭側からキャラクターアプリを削除したいと思います。スクリプトに変更を加える必要はありません。 SQL TRIMを使用して削除する文字を指定すると、必要な出力が得られます。
- データ文字列サイズ元の文字列のバイト単位:11
- SQL TRIM後のバイト単位のデータ文字列サイズ:8
前の例では、先頭または末尾のいずれかから文字を削除しました。両側に文字がある場合は、それらも削除されます。
次の例では、文字列の両側にある文字Aを削除します。スクリプトを実行すると、指定された文字が両側から削除されます。
- 元のデータ文字列サイズ(バイト単位)文字列:12
- SQL TRIM後のバイト単位のデータ文字列サイズ:10
文字列に存在しない文字を指定したとします。次の例では、文字AとCを先頭または末尾から削除します。どちらの側にも文字Cがないため、削除されません。文字Aのみを削除し、出力を提供します。
- 元の文字列のデータ文字列サイズ(バイト単位):12
- SQL TRIM後のデータ文字列サイズ(バイト単位):10
テーブル内のレコードのTRIM
前の記事では、変数を使用して文字列を定義し、その文字列に対してSQLTRIM操作を実行しました。通常、テーブルレコードでTRIMを使用する必要があります。次の例で使用してみましょう。
次の例では、先頭と末尾の文字列から文字Rが削除されています。
UpdateステートメントでもSQLTRIM関数を使用できます。 Employeeテーブルのすべてのレコードを更新し、JobTitileから文字Managerを削除するとします。
マネージャーを1つの単語として扱いません。トリム関数は、文字列内の各文字をチェックして削除します。
コンマ(、)を使用して各文字を区切ることができます
これも同じ作業を行い、文字列の先頭と末尾の特定の文字を削除します。
結論
この記事では、SQL Server2017以降でのSQLTRIM関数について説明しました。また、SQL Server2016以前で使用可能なTRIM関数LTRIMおよびRTRIMについても学習しました。
使用しているSQLServerのバージョンに応じて、これらの関数を理解し、概念に精通している必要があります。この記事がお役に立てば幸いです。以下のコメントで、フィードバックを提供したり、質問したりしてください。
- 作成者
- 最近の投稿
彼は、SQL Server Always On可用性グループに関する50部構成のシリーズで、単一のトピックに関する記事の最大の無料オンラインコレクションの1つを作成しています。 SQL Serverコミュニティへの貢献に基づいて、彼はSQLShackで2020年と2021年に継続的に名誉ある「年間最優秀著者」を含むさまざまな賞を受賞しています。
Rajは常に新しい課題に関心を持っているため、コンサルティングが必要な場合は彼の著作で取り上げられている主題についてのヘルプは、rajendra.gupta16 @ gmail.comに連絡できます。
RajendraGuptaによるすべての投稿を表示
- AWSのマイナーバージョンとメジャーバージョンのアップグレードの実行RDS SQLServer- 2021年1月29日
- AWS RDSPostgreSQLインスタンスのデプロイ-2021年1月27日
- AWSDMSを使用したオンプレミスSQLデータベースのAWSRDS SQLServerへの移行-1月25日、2021