「文字列の連結」とは,ある文字列の端に別の文字列を追加することを意味します.文字列を連結する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 従業員マスタ
結果
従業員名(名前) || '・' || 従業員名(苗字) |
---|
チャーリー・ブラウン |
ペパーミント・パティ |
ルシール・ヴァン・ぺルト |
ライナス・ヴァン・ぺルト |