🧚 お知らせ!Beekeeper Studioは高速でモダンなオープンソースのデータベースGUIです ダウンロード
2026年1月12日 著者:Matthew Rathbone

文字列から空白を取り除く作業は、データのクリーニングや準備でよく行われるタスクです。文字列操作関数の実装はデータベースごとに異なりますが、いずれもデータをよりクリーンで一貫性のあるものにすることを目的としています。このガイドでは、MySQL、PostgreSQL、SQL Server、SQLiteなどさまざまなデータベースでSQLを使って空白をトリムする方法を解説します。

なぜ空白をトリムするのか?

データには意図せず空白が含まれてしまうことがあり、クエリやレポートにおけるデータの一貫性や正確性に問題を引き起こします。空白を取り除くことで、比較や結合が期待どおりに動作するようになります。

実際に試してみる

これらのTRIM関数をすぐに試してみたいですか?MySQL、PostgreSQL、SQL Server、SQLiteの各方言に対応したSQL構文チェッカーツールで、SQLクエリを検証できます。

実際のデータベースで練習するなら、DB Fiddleを試してみてください。ブラウザ上でMySQL、PostgreSQL、SQLiteデータベースに対してSQLクエリを実行できる無料のオンラインツールです。

MySQLで空白をトリムする

MySQLには空白をトリムするための関数がいくつか用意されています。ここでは、先頭、末尾、またはその両方の空白を削除できるTRIM()を取り上げます。

構文

TRIM([[BOTH | LEADING | TRAILING] [remstr] FROM] str)
  • BOTH:先頭と末尾の両方の文字を削除します。
  • LEADING:先頭の文字を削除します。
  • TRAILING:末尾の文字を削除します。
  • remstr:削除する文字または空白(デフォルトは空白)。

例

SELECT TRIM('   Hello World   ') AS trimmed_string;

期待される出力:

+----------------+
| trimmed_string |
+----------------+
| Hello World    |
+----------------+

特定の文字を指定する例

SELECT TRIM(BOTH '-' FROM '---Hello World---') AS trimmed_string;

期待される出力:

+----------------+
| trimmed_string |
+----------------+
| Hello World    |
+----------------+

PostgreSQLで空白をトリムする

PostgreSQLにも同様のTRIM()関数があります。

例

SELECT TRIM('   PostgreSQL User   ') AS trimmed_string;

期待される出力:

+------------------+
| trimmed_string   |
+------------------+
| PostgreSQL User  |
+------------------+

専用の関数を使う

PostgreSQLはLTRIM()とRTRIM()もサポートしています。

  • LTRIM():先頭の空白を削除します。
  • RTRIM():末尾の空白を削除します。

例

SELECT LTRIM('   Leading whitespace') AS ltrimmed_string;
SELECT RTRIM('Trailing whitespace   ') AS rtrimmed_string;

期待される出力:

+--------------------+
| ltrimmed_string    |
+--------------------+
| Leading whitespace |
+--------------------+

+--------------------+
| rtrimmed_string    |
+--------------------+
| Trailing whitespace|
+--------------------+

SQL Serverで空白をトリムする

SQL Server 2017以降では標準のTRIM()関数がサポートされており、デフォルトで先頭と末尾の両方の空白を削除します。

TRIM()を使う(SQL Server 2017+)

SELECT TRIM('   SQL Server   ') AS trimmed_string;

期待される出力:

+----------------+
| trimmed_string |
+----------------+
| SQL Server     |
+----------------+

LTRIM()とRTRIM()を使う(全バージョン)

古いバージョンのSQL Serverや、片側だけをトリムしたい場合は、LTRIM()とRTRIM()を使います。

SELECT LTRIM('   SQL Server') AS ltrimmed_string;
SELECT RTRIM('SQL Server   ') AS rtrimmed_string;

期待される出力:

+-----------------+
| ltrimmed_string |
+-----------------+
| SQL Server      |
+-----------------+

+-----------------+
| rtrimmed_string |
+-----------------+
| SQL Server      |
+-----------------+

古いバージョンで先頭と末尾の両方の空白を削除するには、関数を入れ子にします:

SELECT LTRIM(RTRIM('   SQL Server   ')) AS fully_trimmed_string;

期待される出力:

+----------------------+
| fully_trimmed_string |
+----------------------+
| SQL Server           |
+----------------------+

SQLiteで空白をトリムする

SQLiteではTRIM()関数を使います。動作はMySQLの実装とほぼ同じです。

例

SELECT TRIM('   Hello SQLite   ') AS trimmed_string;

期待される出力:

+---------------+
| trimmed_string|
+---------------+
| Hello SQLite  |
+---------------+

実践例:テーブルのデータをクリーニングする

TRIM関数を使ってテーブルのデータをクリーニングする実例を紹介します。空白の問題を抱えたcustomersテーブルがあるとします:

CREATE TABLE customers (
    id INT PRIMARY KEY,
    name VARCHAR(100),
    email VARCHAR(100)
);

INSERT INTO customers VALUES
    (1, '  John Doe  ', '  john@example.com'),
    (2, 'Jane Smith   ', 'jane@example.com  '),
    (3, '   Bob Wilson', '   bob@example.com   ');

UPDATE customers
SET name = TRIM(name),
    email = TRIM(email);

SELECT id, CONCAT('[', name, ']') AS name, CONCAT('[', email, ']') AS email
FROM customers;

このパターンは主要なデータベースすべてで使えますが、CONCATの正確な構文は若干異なる場合があります。

まとめ

SQLでの空白のトリムは、シンプルながらデータの正規化や準備に役立つ強力な操作です。データベースごとに構文や機能は異なりますが、基本的な機能は共通しています。これらのトリム関数を活用してデータを意図どおりの状態に保ち、SQLデータベース全体で正確なクエリとレポートを実現しましょう。

Beekeeper Studioは無料のオープンソースのデータベースGUIです

これまで使った中で最高のSQLクエリ&エディタツールです。データベースの管理に必要なものがすべて揃っています。 - ⭐⭐⭐⭐⭐ Mit

Beekeeper Studioは高速で直感的、そして使いやすいツールです。多数のデータベースに対応し、Windows、Mac、Linuxで快適に動作します。

BeekeeperのLinux版は100%フル機能。手抜きも機能の妥協も一切ありません。

Beekeeper Studio 利用者の声

★★★★★
「Beekeeper Studioで以前のSQLワークフローを完全に置き換えました。高速で直感的、データベース作業がまた楽しくなりました。」
— Alex K.、データベース開発者
★★★★★
「多くのデータベースGUIを試してきましたが、Beekeeperは機能とシンプルさのバランスが完璧です。とにかくちゃんと動きます。」
— Sarah M.、フルスタックエンジニア