sql >> データベース >  >> RDS >> Oracle

OracleのCONCAT()関数

    Oracleでは、CONCAT() 関数は、引数に対して文字列連結を実行します。引数を連結した結果の文字列を返します。

    連結とは、複数の文字列をエンドツーエンドで結合する操作です。

    構文

    構文は次のようになります:

    CONCAT(char1, char2)

    ここで、両方の引数は任意のデータ型CHARにすることができます 、VARCHAR2NCHARNVARCHAR2CLOB 、またはNCLOB

    簡単な例を次に示します。

    SELECT CONCAT('Ponzi', 'Invest')
    FROM DUAL;

    結果:

       CONCAT('PONZI','INVEST') 
    ___________________________ 
    PonziInvest                

    ヌル値

    文字列をnullと連結する 文字列を返します:

    SET NULL 'null';
    
    SELECT 
        CONCAT('Ponzi', null),
        CONCAT(null, 'Invest')
    FROM DUAL;

    結果:

       CONCAT('PONZI',NULL)    CONCAT(NULL,'INVEST') 
    _______________________ ________________________ 
    Ponzi                   Invest                   

    ただし、両方の引数がnullの場合 、結果はnullです :

    SET NULL 'null';
    
    SELECT CONCAT(null, null)
    FROM DUAL;

    結果:

       CONCAT(NULL,NULL) 
    ____________________ 
    null                

    デフォルトでは、SQLclおよびSQL * Plusは、nullの場合は常に空白を返します。 SQL SELECTの結果として発生します 声明。

    ただし、SET NULLは使用できます 返される別の文字列を指定します。ここでは、文字列nullを指定しました 返却する必要があります。

    引数の数が正しくありません

    CONCAT()を呼び出す 引数を渡さないとエラーが返されます:

    SELECT CONCAT()
    FROM DUAL;

    結果:

    Error starting at line : 1 in command -
    SELECT CONCAT()
    FROM DUAL
    Error at Command Line : 1 Column : 8
    Error report -
    SQL Error: ORA-00938: not enough arguments for function
    00938. 00000 -  "not enough arguments for function"
    *Cause:    
    *Action:

    また、間違った数の引数を渡すと、エラーが発生します:

    SELECT CONCAT('Gosh', 'Dang', 'Investments')
    FROM DUAL;

    結果:

    Error starting at line : 1 in command -
    SELECT CONCAT('Gosh', 'Dang', 'Investments')
    FROM DUAL
    Error at Command Line : 1 Column : 8
    Error report -
    SQL Error: ORA-00909: invalid number of arguments
    00909. 00000 -  "invalid number of arguments"
    *Cause:    
    *Action:

    文字セットとデータ型

    結果の文字列は最初の引数と同じ文字セットですが、そのデータ型は引数のデータ型によって異なります。

    2つの異なるデータ型を連結する場合、Oracle Databaseは、ロスレス変換をもたらすデータ型を返します。したがって、引数の1つがLOBの場合、戻り値はLOBです。引数の1つが国別データ型である場合、戻り値は国別データ型です。

    例:

    • CONCATCLOBNCLOB )はNCLOBを返します
    • CONCATNCLOBNCHAR )はNCLOBを返します
    • CONCATNCLOBCHAR )はNCLOBを返します
    • CONCATNCHARCLOB )はNCLOBを返します

    1. カテゴリの管理やスレッドや投稿への投票など、より高度な機能の追加

    2. 動的ファイル名でコピー

    3. MySQLでの行カウントの高速化

    4. あなたのビジネスにはHRデータベースが必要ですか?