SQLServerで文末の空白を除外する

 

 

 

 

 

 

・空白の除外をする?ならRtrimでいいじゃない

 

例えば、’AAA□□ ’のような文字列が入力された場合、Rtrimでは全角の空白が除外できないため’AAA□□’のように全角の空白が残ってしまいます。

 

 

 

 

 

じゃあRtrim(Replace(x,' ',' '))でどう?

 

確かに末尾の空白は除外されました。

 

しかし’A□AA□□ ’のような文字列が入力された場合、’A AA’となってしまい、文字列中の空白まで半角になってしまいます。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Substring(x,1,Len(Rtrim(Replace(x,' ',' '))))

 

 

Replaceで全角のスペースを半角に                         (’A□AA□□ ’→’A AA   ’)

 

Rtrimで末尾の空白を除外                              (’A AA   ’→’A AA’)

 

Lenで文字数を出す                                 (’A AA’→4文字)

 

Substringで元の文字列から、末尾の空白を除外した文字数だけ抜き出す           (’A□AA□□ ’の1文字目から4文字抜き出す)

 

 

 

全ての空白を半角にし、末尾の半角を消した文字数を出して、その文字数を元にして末尾の空白を除外する。

 

 

ベテランの皆さんにはあまりにも楽勝な話かもしれませんが、僕は最初、なぜこんな回りくどい方法を取っているのかわからず考え込んだ末に感動したのでこのテーマを選びました。