SQLServerではTRIM関数がありません

SQLServerではOracleなどでサポートされている文字列の前後を取り除く「trim」がありません。

文字列にある前後の空白を取り除くには「LTRIM」と「RTRIM」を組み合わせて実現します。

【2021.02.24追記】
SQLServer2017よりTrim関数がサポートされています。

SQLServerのTrim関数は1度に複数の文字を前後から取り除ける
SQLServer2017で実装されたTrim関数は前後の半角空白文字を取り除けるだけではなく、複数の文字を1度に取り除ける強力なものになっています。これまで複雑にRTRIM関数、LTRIM関数を組み合わせていた処理がTRIM関数1つで書けるようになりました。
スポンサーリンク

SQLServerでは空白を取り除くTRIM関数がない

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

LTRIM、RTRIMなし

SELECT '|' + ' あいうえお ' + '|' AS TRIMなし
TRIMなし
| あいうえお |

LTRIM

SELECT '|' + LTRIM( ' あいうえお ' ) + '|'
    AS LTRIMだけ
LTRIMだけ
|あいうえお |

RTRIM

SELECT '|' + RTRIM( ' あいうえお ' ) + '|'
    AS RTRIMだけ
RTRIMだけ
| あいうえお|

LTRIMとRTRIM両方

SELECT '|' + LTRIM(RTRIM( ' あいうえお ' )) 
    + '|' AS LTRIMとRTRIM両方
LTRIMとRTRIM両方
|あいうえお|

ちょっとめんどくさいですね。
なんでないのでしょう?
※SQLServer 2017でTRIM関数が追加されました。

スポンサーリンク
スポンサーリンク
SQL学習におすすめの本
SQL Server
スポンサーリンク
ソフトウェア開発日記
タイトルとURLをコピーしました