概要: このチュートリアルでは、SQL CONCAT関数を使用して2つ以上の文字列を1つの文字列に連結する方法を学習します。
SQL CONCAT関数の紹介
SQLのCONCAT
関数は、2つ以上の文字列を1つの文字列に連結します。 以下はCONCAT
関数の構文を示しています。
CONCAT(string1,string2,..);
Code language: SQL (Structured Query Language) (sql)
文字列を連結するには、文字列をカンマで区切った引数リストとして関数に渡します。
CONCAT
関数は、入力文字列の組み合わせである文字列を返します。 引数のいずれかがNULL
の場合、NULL
を返します。(NULL
値をより効果的に処理するには、IS NULL
演算子、またはCOALESCE
とNULLIF
関数を使用できます。)
ほとんどのリレーショナルデータベースシステムはCONCAT
関数をサポートしていますが、それらにはいくつかの違いがあります。 例えば、MySQL CONCAT
関数は2つ以上の文字列を連結できますが、Oracle CONCAT
関数は正確に2つの文字列を連結します。
CONCAT
関数を使用する以外にも、連結演算子を使用できます。 例えば、OracleとPostgreSQLでは、||
演算子を使用して2つ以上の文字列を連結できます。 Microsoft SQL Serverでは、+
演算子を使用します。
SQL CONCATの例
次のステートメントは、CONCAT
関数を使用して2つの文字列を連結します。
SELECT CONCAT('SQL CONCAT function', ' demo');
Code language: SQL (Structured Query Language) (sql)
concat
----------------------
SQL CONCAT function demo
(1 row)
Code language: SQL (Structured Query Language) (sql)
次のステートメントは、CONCAT
関数を使用して、名、スペース、姓を連結することで、従業員のフルネームを返します。
SELECT
CONCAT(first_name, ' ', last_name) AS name
FROM
employees
ORDER BY name;
Code language: SQL (Structured Query Language) (sql)

Oracleデータベースを使用している場合は、同じ結果を得るためにCONCAT
関数を2回適用する必要があります。次のクエリを参照してください。
SELECT
CONCAT(CONCAT(first_name, ' '), last_name) AS name
FROM
employees
ORDER BY name;
Code language: SQL (Structured Query Language) (sql)
内部のCONCAT
関数は名とスペースを連結し、外部のCONCAT
関数は内部CONCAT
関数の結果と姓を連結します。
Oracle(およびPostgreSQL)で連結演算子を使用する方がはるかにクリーンです。
SELECT
(first_name || ' ' || last_name) AS name
FROM
employees
ORDER BY name;
Code language: SQL (Structured Query Language) (sql)
Microsoft SQL Serverでは、次のクエリを使用します。
SELECT
(first_name + ' ' + last_name) AS name
FROM
employees
ORDER BY name;
Code language: SQL (Structured Query Language) (sql)
MySQLまたはPostgreSQLを使用している場合は、セパレータ付きで文字列を連結するためにCONCAT_WS
関数を使用できます。
CONCAT_WS(separator,string1,string2,...);
Code language: SQL (Structured Query Language) (sql)
たとえば、CONCAT_WS
関数を使用して、従業員のフルネームを次のように構成できます。
SELECT
CONCAT_WS(' ',first_name,last_name) AS name
FROM
employees
ORDER BY name;
Code language: SQL (Structured Query Language) (sql)
このチュートリアルでは、SQL CONCAT
関数を使用して2つ以上の文字列を1つの文字列に連結する方法を学習しました。