SQLでCONCAT()とCONCAT_WS()を使って文字列を結合する方法

この記事では、SQLでよく用いられる文字列結合関数`CONCAT()`と`CONCAT_WS()`について、その違いと使用例について詳しく解説します。`CONCAT()`と`CONCAT_WS()`は、複数の文字列を一つにまとめる際に便利な関数ですが、それぞれに特有の特性と利点があります。この記事を読むことで、これらの関数を効率よく使用できるようになるでしょう。

目次

CONCAT()とは

CONCAT()はSQLで基本的な文字列結合を行う関数です。単純に複数の文字列を一つにまとめることができます。

SQLコマンド結果
CONCAT(‘こんにちは’, ‘ ‘, ‘世界’)こんにちは 世界
テーブル1: CONCAT()の基本的な使用例

CONCAT()の使い方

CONCAT()関数は、カンマで区切って複数の文字列を渡します。

SELECT CONCAT('こんにちは', ' ', '世界');

NULL値の扱い

CONCAT()関数では、NULL値が引数として渡された場合、結果もNULLとなります。

SELECT CONCAT('こんにちは', NULL, '世界');

CONCAT_WS()とは

CONCAT_WS()は”CONCAT With Separator”の略で、複数の文字列を一つにまとめる際に区切り文字(セパレータ)を挿入することができます。

SQLコマンド結果
CONCAT_WS(‘-‘, ‘2023’, ’10’, ’21’)2023-10-21
テーブル2: CONCAT_WS()の基本的な使用例

CONCAT_WS()の使い方

第一引数に区切り文字を指定し、それ以降の引数に結合したい文字列を渡します。

SELECT CONCAT_WS('-', '2023', '10', '21');

NULL値の扱い

CONCAT_WS()関数では、NULL値が引数として渡された場合、その部分は無視されます。

SELECT CONCAT_WS('-', 'こんにちは', NULL, '世界');

CONCAT()とCONCAT_WS()の比較

関数NULL値の扱い区切り文字の挿入
CONCAT()結果がNULL不可
CONCAT_WS()無視
テーブル3: CONCAT()とCONCAT_WS()の違い

まとめ

SQLでの文字列結合には`CONCAT()`と`CONCAT_WS()`があり、それぞれに用途と特性があります。特に、`CONCAT_WS()`は区切り文字を挿入することができるため、フォーマットを整えたい場合に便利です。一方で、`CONCAT()`はシンプルな結合を行いたい場合に使われます。この記事で紹介した各関数の特性を理解し、適切に使い分けることが重要です。

コメント

コメントする

目次