SQL道場 文字列関数 CONCAT関数

SQLで文字列を結合するCONCAT関数について記載しています。

対応データベースMySQL Oracle DB2

CONCAT関数の文法

SELECT CONCAT(文字列1,文字列2) FROM テーブル
SELECT CONCAT(文字列1,文字列2 [, 文字列3・・・]) FROM テーブル
引数文字列文字列型
返値文字列型

CONCAT関数は引数に指定された文字列を結合して連結した文字列を戻します。Oracle、DB2では2つの文字列を連結します。MySQLでは3つ以上の文字列の連結も可能です。MySQLは、SQL Server や Oracle で + や || をつかって文字列をつなげる方法が使えないため、CONCAT関数を使用します。

引数に NULL が含まれている場合は、結果は NULL となります。

MySQL

すべての引数が非バイナリ文字列の場合は、結果も非バイナリ文字列になります。 引数にバイナリ文字列が含まれる場合は、結果はバイナリ文字列になります。 数値の引数は、同等の非バイナリ文字列形式に変換されます。

実行例

IDEMP_NAME(氏名)EMP_AGE(年齢)EMP_SEX(性別)
1すなりん 太郎35
2博多 ぴーち20
3田中 工事3
4佐々木 花子40
5佐藤 じゅん23
6佐々木 ゆん2

MySQLの実行例

/* MySQL 文字列を連結するサンプル */
SELECT concat(EMP_NAME,EMP_AGE) FROM testdb.MST_EMPLOYEE;
CONCAT関数サンプル実行結果

3列以上の文字列連結

/*  MySQL 3列以上の文字列を連結するサンプル */
SELECT concat(EMP_NAME,'|',EMP_AGE,'歳','|',EMP_SEX,'性') FROM testdb.MST_EMPLOYEE;
CONCAT関数サンプル実行結果