概要: このチュートリアルでは、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つの文字列に連結する方法を学習しました。