CONCAT関数は、新しい文字列を作成するために、ある文字列と別の文字列を連結します。
SQL構文
CONCAT(Expression1, Expression2)
パラメータ
CONCATには、次のパラメータがあります。
| パラメータ | 説明 |
|---|---|
Expression1 |
CHAR、VARCHAR2、NCHARまたはNVARCHAR2式。 |
Expression2 |
CHAR、VARCHAR2、NCHARまたはNVARCHAR2式。 |
説明
CONCATはExpression2と連結されたExpression1を返します。
Expression1とExpression2のデータ型には互換性がある必要があります。
Expression2がNULLの場合、CONCATはExpression1を返します。 Expression1がNULLの場合、CONCATはExpression2を返します。
Expression1とExpression2が両方NULLであれば、CONCATはNULLを返します。
CONCATの戻り型はExpression1とExpression2の型によって異なります。 次の表に、戻り型の決定方法の概要を示します。
| Expression1 | Expression2 | CONCAT |
|---|---|---|
CHAR(m) |
CHAR(n) |
CHAR(m+n) |
CHAR(m) |
VARCHAR2(n) |
VARCHAR2(m+n) |
VARCHAR2(m) |
CHAR(n) |
VARCHAR2(m+n) |
VARCHAR2(m) |
VARCHAR2(n) |
VARCHAR2(m+n) |
NCHARとNVARCHAR2も同様に扱われます。扱われるオペランドのいずれかが可変長であれば、戻り値も可変長になります。その他の場合、戻り値は固定長です。
CHAR、NCHAR、VARCHAR2およびNVARCHAR2型の連結がサポートされています。CHARACTER型をNCHARACTER型と連結するとNCHARACTER型になります。
例
次の例では、姓と名前を連結します。
Command> SELECT CONCAT(CONCAT(first_name, ' '), last_name), salary FROM employees; < Steven King, 24000 > < Neena Kochhar, 17000 > < Lex De Haan, 17000 > < Alexander Hunold, 9000 > ... 107 rows found.
次の例では、列idを列id2と連結します。 この例では、結果のデータ型はNCHAR(40)になります。
Command> CREATE TABLE cat (id CHAR (20), id2 NCHAR (20));
Command> INSERT INTO cat VALUES ('abc', 'def');
1 row inserted.
Command> SELECT CONCAT (id,id2) FROM cat;
< abc def >
1 row found.
| |演算子の詳細は、「式の指定」を参照してください。