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.
| |演算子の詳細は、「式の指定」を参照してください。