「文字列の連結」とは,ある文字列の端に別の文字列を追加することを意味します.文字列を連結するSQLは使用するDBMSによって異なります.以下に各DBMSごとに使用可能なSQLを示します.
| DBMS | SQL |
|---|---|
| Access | 文字列1 + 文字列2 |
| SQLServer | 文字列1 + 文字列2 |
| Oracle | CONCAT(文字列1, 文字列2) |
| 文字列1 || 文字列2 | |
| MySQL | CONCAT(文字列1, 文字列2, 文字列3) |
| PostgreSQL | 文字列1 || 文字列2 |
AccessとSQLServerは +演算子を使用して文字列を連結します.
SELECT '文字列1' + '文字列2' + ...
OracleはCONCAT関数を使用するか ||演算子を使用して文字列を連結します.
SELECT CONCAT('文字列1', '文字列2')
SELECT '文字列1' || '文字列2' || ...
MySQLはCONCAT関数を使用して文字列を連結します.なお,||演算子はMySQLでは論理和(OR)として解釈されるため,文字列連結の用途には使用できません.
SELECT CONCAT('文字列1', '文字列2', ...)
PostgreSQLは ||演算子を使用して文字列を連結します.
SELECT '文字列1' || '文字列2' || ...
例としてOracleで以下のテーブル(従業員マスタ)から従業員名(苗字)と従業員名(名前)を連結します.
従業員マスタ
| 従業員コード | 従業員名(苗字) | 従業員名(名前) |
|---|---|---|
| A0001 | ブラウン | チャーリー |
| A0002 | パティ | ペパーミント |
| A0003 | ヴァン・ぺルト | ルシール |
| A0004 | ヴァン・ぺルト | ライナス |
SQL
SELECT 従業員名(名前) || '・' || 従業員名(苗字)
FROM 従業員マスタ
結果
| 従業員名(名前) || '・' || 従業員名(苗字) |
|---|
| チャーリー・ブラウン |
| ペパーミント・パティ |
| ルシール・ヴァン・ぺルト |
| ライナス・ヴァン・ぺルト |