SQL│CONCAT関数を使った文字列の連結を紹介します

今回は、SQLで文字列を連結するときに使うCONCAT関数について説明します。

テーブルからデータを抽出するときに、列同士や任意の文字列を組み合わせて連結するための関数です。たとえば、別の列に格納されている部署コードと部署名姓と名を連結することができます。

この記事では、CONCAT関数を使って文字列を連結する方法を実例を用いて説明します。

目次

文字列を連結するCONCAT

この章では、テーブルから抽出した列や任意の文字列を連結するためのCONCAT関数の基本的な書き方を説明します。

基本文法

列同士の文字列を連結する
SELECT CONCAT(列名1,列名2) FROM テーブル名;

列の文字列と任意の文字列を連結する
SELECT CONCAT(列名1,’任意の文字列’) FROM テーブル名;

実際のSQL

  • テーブル名・・・Stationery
  • 連結する列名・・・sta_name,stock

たとえば、テーブル[Stationery]の商品名列(sta_name)と在庫数列(stock)の文字列を連結する場合には、下記のようにSQL文を記述します。

SELECT CONCAT(sta_name,stock) FROM Stationery;

さらに列と列の間に半角スペースなどの任意の文字列を含める場合には、下記のように記述します。

SELECT CONCAT(sta_name,' ',stock) FROM Stationery;

MySQLのCONCATの実例

SELECT CONCAT(sta_name,’ ‘,stock) AS 商品と在庫数 FROM Stationery;

PostgreSQLのCONCATの実例

PostgreSQLではCONCAT関数のほか、||の記号を用いることでも文字列の連結ができます。(||を使った文字列の連結はMySQLでは機能しません)

CONCAT

SELECT CONCAT(sta_name,’ ‘,stock) AS 商品と在庫数 FROM Stationery;

||(記号:縦線2つ)

SELECT sta_name||’ ‘||stock AS 商品と在庫数 FROM Stationery;
※前例同様、間に半角スペースを含めています

補足

CONCAT関数を使って文字列を連結した場合には、列名にはCONCAT関数の構文が表示されます。

列名からはデータの用途が判別し辛い

このような状態は客観的に何を目的にしたデータ列なのか判別がし辛いため、AS区を使って分かりやすい列名で表記するようにしましょう。(当記事のMySQLやPostgreSQLの実例ではAS区を使っています)

あとがき

今回はテーブルから抽出した文字列を連結するためのCONCAT関数について、基本的な書き方と実例を記事にしました。

データベースから抽出するデータの用途は様々で、活用しやすいように加工するテクニックは多く覚えているほど効率的な運用ができます。

実際にCONCAT関数で文字列を連結して使い方を習得しましょう。

目次