テクニカル雑記帳です
SQLServerで文字列内全ての空白(半角・全角)を除去する
このpostは、『2018-04-02-SQLServerで文字列内全ての空白(半角・全角)を除去する』の焼き直しです。 あまりにも昔の同内容の記事にアクセスが続いていたので、放置していたところを描き増しました。
左右のスペースを除去する
左右のスペースを除去する場合、LTRIM()
とRTRIM()
を組み合わせることで左右からスペースを除去することができる。
SELECT LTRIM(RTRIM(' いろ はに ほへと ')) AS result
--- | result |
--- | ------------ |
--- | いろ はに ほへと |
中間のスペースを除去する
指定された整数のUnicode文字を返す、NCHAR
関数を使ってREPLACEする。
12288
: 全角スペース0x0020
: 半角スペース
以下の例では、まずREPLACE(' いろ はに ほへと ', ' ', '')
で半角スペースを除去し、
その結果から全角スペースを除去する。
SELECT REPLACE(REPLACE(' いろ はに ほへと ', ' ', ''), NCHAR(12288), '') AS result
--- | result |
--- | ---------- |
--- | いろはにほへと |
通常のSQL文では、半角スペースを直接指定することが一般的だと思いますが、
半角スペースであることを明示したい場合にREPLACE(REPLACE(' いろ はに ほへと ', NCHAR(0x0020), ''), NCHAR(12288), '')
のようなやり方は有効かと思います。