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
すべての引数が非バイナリ文字列の場合は、結果も非バイナリ文字列になります。 引数にバイナリ文字列が含まれる場合は、結果はバイナリ文字列になります。 数値の引数は、同等の非バイナリ文字列形式に変換されます。
実行例
ID | EMP_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;
3列以上の文字列連結
/* MySQL 3列以上の文字列を連結するサンプル */
SELECT concat(EMP_NAME,'|',EMP_AGE,'歳','|',EMP_SEX,'性') FROM testdb.MST_EMPLOYEE;