今回は、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の実例
PostgreSQLのCONCATの実例
PostgreSQLではCONCAT関数のほか、||の記号を用いることでも文字列の連結ができます。(||を使った文字列の連結はMySQLでは機能しません)
CONCAT
||(記号:縦線2つ)
補足
CONCAT関数を使って文字列を連結した場合には、列名にはCONCAT関数の構文が表示されます。
このような状態は客観的に何を目的にしたデータ列なのか判別がし辛いため、AS区を使って分かりやすい列名で表記するようにしましょう。(当記事のMySQLやPostgreSQLの実例ではAS区を使っています)
あとがき
今回はテーブルから抽出した文字列を連結するためのCONCAT関数について、基本的な書き方と実例を記事にしました。
データベースから抽出するデータの用途は様々で、活用しやすいように加工するテクニックは多く覚えているほど効率的な運用ができます。
実際にCONCAT関数で文字列を連結して使い方を習得しましょう。