SQLServerのTrim関数は1度に複数の文字を前後から取り除ける

記事内に広告が含まれています。

Microsoft SQLServerには2017バージョンより前のものにはTrim関数はありませんでした。

なので文字列の空白を取り除くには

rtrim( ltrim( '空白を取り除く文字列' ))

のようにrTrim(右側の空白を取り除く)関数とlTrim(左側の空白を取り除く)関数を組み合わせて使う必要がありました。

SQLServerではTRIM関数がありません
SQLServerではOracleやMySQLなどでサポートされている空白を取り除くTRIM関数がないので、カラムの前後の空白を取り除くにはLTRIM関数とRTRIM関数を組み合わせて実現します。※SQLServer 2017でTRIM関数が追加されました。

SQLServer2107からはこの問題点を解決するためにtrim関数が実装されました。

SQLServerのtrim関数

SQLServerのTrim関数はコールすると文字列の前後の半角空白文字を取り除いてくれます。

SELECT ' 対象の文字列 ' AS '12345678901234567890'
SELECT trim(' ←半角空白<対象の文字列>半角空白→ ') AS '12345678901234567890'

実行結果は

12345678901234567890
 対象の文字列 
12345678901234567890
対象の文字列

と文字列の前後の半角空白文字が取り除かれています。

Trim関数は取り除く文字を指定できる

SQLServerのTrim関数は取り除く文字を指定できるようになっています。

SELECT TRIM( 'A' FROM 'ABCDEFGHIA')

実行結果は

(列名なし)
BCDEFGHI

となり、文字列の前後の「A」が取り除かれています。

Trim関数は取り除く文字を1度に複数指定できる

SQLServerのTrim関数は取り除く文字を複数1度に指定することができます。

SELECT TRIM( 'ABC' FROM 'BACDEFGHICA')

実行結果は

(列名なし)
DEFGHI

となり、文字列の前後の「A」、「B」、「C」が取り除かれています。

これをうまく使えば「半角空白」「全角空白」「タブ文字」「改行文字」などテキストとして扱うのに不要なものを1度に取り除くことができますね。

まとめ

SQLServerのTrim関数は前後の半角空白文字を取り除けるだけではなく、複数の文字を1度に取り除ける強力なものになっています。

これまで複雑にRTRIM関数、LTRIM関数を組み合わせていた処理がTRIM関数1つで書けるようになりました。

タイトルとURLをコピーしました