スポンサーリンク

【SQL】空白を削除する方法

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

SQLで文字列から空白を削除する方法はいくつかあります。

具体的には、空白の種類空白の位置(前後の空白だけ、すべての空白など)に応じて方法を選択します。

スポンサーリンク

前後の空白を削除する

SQLでは、TRIM関数を使用すると、文字列の先頭と末尾の空白を削除できます。

使用例

SELECT TRIM('   sample string   ') AS trimmed_string;

出力例

trimmed_string
---------------
sample string
スポンサーリンク

文字列内のすべての空白を削除する

文字列内のすべての空白を削除したい場合、REPLACE関数を使用します。

使用例

SELECT REPLACE('sample string with spaces', ' ', '') AS no_spaces;

出力例

no_spaces
----------
samplestringwithspaces

特定の方向の空白を削除する

先頭の空白のみ削除(LTRIM)

SELECT LTRIM(' sample string') AS left_trimmed; 
left_trimmed
-------------
sample string

末尾の空白のみ削除(RTRIM)

SELECT RTRIM('sample string ') AS right_trimmed; 
right_trimmed
--------------
sample string

複数の連続する空白を1つにまとめる

複数の連続した空白を1つにまとめたい場合は、SQL標準関数ではなく正規表現を使える環境(たとえば、PostgreSQLやOracle)で対応できます。

PostgreSQLの例

SELECT REGEXP_REPLACE('sample   string   with   spaces', '\s+', ' ') AS single_spaces;

Oracleの例

SELECT REGEXP_REPLACE('sample   string   with   spaces', '\s+', ' ') AS single_spaces FROM dual;

出力例

single_spaces
--------------
sample string with spaces

注意点

  • データベース環境に応じたサポート
    TRIMREPLACEはほとんどのSQLデータベースでサポートされていますが、正規表現関数は環境によって異なります(例:MySQL 8.0以降でサポート)。
  • 全角スペースの扱い
    日本語などで使用される全角スペースを削除する場合は、SQL標準関数だけでは対応できないことがあります。その場合は以下のように記述します。

全角スペースの削除(MySQLの場合)

SELECT REPLACE('sample string with 全角スペース', ' ', '') AS no_fullwidth_spaces;
スポンサーリンク
SQL
著者SNS
タイトルとURLをコピーしました