SQL Server2016以前バージョンには、先頭と末尾の不要なスペースの両方をトリミングするための簡単な文字列操作機能がありません。 LTRIMを使用して先頭のスペースを削除し、RTRIMを使用して末尾のスペースを個別に削除する回避策があります。幸いなことに、組み込みのTRIM関数は、translate()やconcat_ws()などの他の文字列関数とともにSQL Server2017バージョンで導入されています。この新しい関数は、1回の操作で文字列の両側のスペースを削除し、コードをクリーンにします。
SQL Server2017以降のTRIM()
TRIM()関数はSQL Server 2017で導入されました。以前のすべてのバージョンでは、文字列から先頭のスペースを削除するLTRIM()と、末尾のスペースを削除するRTRIM()しかありません。新しく導入された関数を使用して、不要な先頭と末尾のスペースを文字列から一度に削除できます。文字列の最初と最後からスペース以外の文字を削除するためにも使用できます。
組み込みのTRIM関数の使用
trimの構文はTRIM(string)です。 。 FROMの文字を使用せずに文字列を作成すると、文字列の両側のスペースが削除されます。 ‘Characters’ FROMを使用すると、文字列の先頭と末尾にある特定の文字が検索され、削除されます。
スペースのみをトリミングする場合の例
SELECT TRIM(" My Tec Bits ")/* Result */"My Tec Bits"
文字をトリミングする例
SELECT TRIM( ".! " FROM "@ My Tec Bits !..") AS Result;/* Result */"@ My Tec Bits"
SQL Server2016から2005までのTRIMと同等
SQL Server 2016以前のバージョンでは、TRIM関数を使用しようとすると、「TRIM」が認識された組み込み関数名ではないことを示すエラーが表示されます。したがって、古いバージョンのSQL Serverでは、組み込み関数に相当するものは、LTRIM(RTRIM( ‘String‘))のようにLTRIMとRTRIMを一緒に使用することです。この手法によってコードが見苦しく見える場合は、このメソッドをUDFで囲み、次のように使用できます。
SQL Server2000で同等のTRIM
バージョン2000のSQL Serverでは、LTRIMとRTRIMを一緒に使用して、両側のトリミング機能を実現することもできます。 UDFを作成する傾向がある場合は、以前に作成したUDFからの小さな変更があります。 SQL Server 2000にはVarchar(Max)データ型がありません。したがって、代わりにVarchar(8000)データ型を使用する必要があります。 UDFは次のようになります: