CONCAT

CONCAT関数は、新しい文字列を作成するために、ある文字列と別の文字列を連結します。

SQL構文

CONCAT(Expression1, Expression2)

パラメータ

CONCATには、次のパラメータがあります。

パラメータ 説明

Expression1

CHARVARCHAR2NCHARNVARCHAR2CLOBまたはNCLOB式。

Expression2

CHARVARCHAR2NCHARNVARCHAR2CLOBまたはNCLOB式。

説明

  • CONCATは、Expression2が連結されたExpression1を返します。

  • Expression1Expression2の型には互換性が必要です。

  • Expression2NULLの場合、CONCATExpression1を返します。Expression1NULLの場合、CONCATExpression2を返します。

  • Expression1Expression2の両方がNULLの場合、CONCATNULLを返します。

  • NCHARNVARCHAR2も同様に扱われます。扱われるオペランドのいずれかが可変長であれば、戻り値も可変長になります。その他の場合、戻り値は固定長です。

  • CONCATの戻り型は、Expression1Expression2の型によって決まります。2つの異なるデータ型を連結すると、結果を含むことのできるデータ型が戻されます。そのため、引数の1つが各国語文字データ型の場合は、戻り値は各国語文字データ型となります。引数の1つがLOBの場合、戻り値はLOBとなります。

    次の表に、戻り型の決定方法の例を示します。

    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)

    CLOB

    NCLOB

    NCLOB

    NCLOB

    NCHAR

    NCLOB

    NCLOB

    CHAR(n)

    NCLOB

    NCHAR(n)

    CLOB

    NCLOB

次の例では、姓と名前を連結します。

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.

||演算子の説明は、「式の指定」を参照してください。