あじちゃんの備忘録。

〜ここはメモ帳です

SQLServerで文字列内全ての空白(半角・全角)を除去する

あまりにも昔の同内容の記事にアクセスが続いていたので、放置していたところを描き増しました。以下をご参照ください。 →SQLServerで文字列内全ての空白(半角・全角)を除去する


左右のスペースを除去する場合

LTRIM('  いろ はに ほへと  ')
RTRIM('  いろ はに ほへと  ')

この二つを合体させて、

LTRIM(RTRIM('  いろ はに ほへと  '))

とする
この場合、「  いろ はに ほへと  」という文字列だった場合に「いろ はに ほへと」と変換される。
今回はこれを、「いろはにほへと」にしたい場合を考える。

中間のスペースを除去する

TRIM関数が使えればよいのだが、SQLServerにはそういうのがないのでREPLACE関数を代用する。

-- [半角スペース]を[文字列無し]に置換
REPLACE('  いろ はに ほへと  ',' ','')

これを実行することで、目的の「いろはにほへと」が取得できる。
どうも半角スペースと全角スペースを区別していないようで、

-- [半角スペース]を[文字列無し]に置換
REPLACE('  いろ はに ほへと  ',' ','')
-- [全角スペース]を[文字列無し]に置換
REPLACE('  いろ はに ほへと  ',' ','')

上記のどちらを実行しても「いろはにほへと」が取得される。
区別するには正規表現とか使うのかしら???