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

OracleのLPAD()関数

    Oracleでは、LPAD() この関数を使用すると、文字列の左側に特定の文字を指定した文字数で埋めることができます。

    それが機能する方法は、結果の文字列の長さを指定することです。元の文字列が短い場合、残りのスペースはパディング文字で埋められます。

    構文

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

    LPAD(expr1, n [, expr2 ])

    場所:

    • expr1 およびexpr2 CHARの任意のデータ型にすることができます 、VARCHAR2NCHARNVARCHAR2CLOB 、またはNCLOB
    • n NUMBERです 整数またはNUMBERに暗黙的に変換できる値 整数。

    この関数はexpr1を返します 、長さ nまで左パッド expr2の文字のシーケンスを持つ文字

    expr2の場合 省略した場合、パディング文字は単一の空白になります。

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

    SELECT LPAD('Cat', 5)
    FROM DUAL;

    結果:

       LPAD('CAT',5) 
    ________________ 
      Cat           

    提供される数値は、結果の文字列の合計幅であることに注意してください– パディングの量。

    元の(パディングされていない)文字列と比較すると、ここでも同じです:

    SELECT LPAD('Cat', 5)
    FROM DUAL
    UNION ALL
    SELECT 'Cat'
    FROM DUAL;

    結果:

       LPAD('CAT',5) 
    ________________ 
      Cat            
    Cat             

    文字を指定

    この例では、パディングに使用する文字を指定します:

    SELECT LPAD('Cat', 5, '>')
    FROM DUAL;

    結果:

       LPAD('CAT',5,'>') 
    ____________________ 
    >>Cat               

    元の文字列よりも小さいパディング

    2番目の引数が元の文字列よりも小さい場合、パディングは追加されず、元の文字列は指定された文字数に短縮されます。

    SELECT LPAD('Cat', 2)
    FROM DUAL;

    結果:

       LPAD('CAT',2) 
    ________________ 
    Ca              

    データベースの例

    データベース列の値の左側をパディングする例を次に示します。

    SELECT 
        country_name,
        LPAD(country_name, 12, '.') AS Padded
    FROM countries
    FETCH FIRST 5 ROWS ONLY;

    結果:

       COUNTRY_NAME          PADDED 
    _______________ _______________ 
    Argentina       ...Argentina    
    Australia       ...Australia    
    Belgium         .....Belgium    
    Brazil          ......Brazil    
    Canada          ......Canada    

    ヌル値

    引数のいずれかがnullの場合 結果はnullです :

    SET NULL 'null';
    
    SELECT 
        LPAD(null, 3),
        LPAD('Cat', null),
        LPAD('Cat', 3, null)
    FROM DUAL;

    結果:

       LPAD(NULL,3)    LPAD('CAT',NULL)    LPAD('CAT',3,NULL) 
    _______________ ___________________ _____________________ 
    null            null                null                  

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

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

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

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

    SELECT LPAD()
    FROM DUAL;

    結果:

    Error starting at line : 1 in command -
    SELECT LPAD()
    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 LPAD('Cat', 1, '>', 2)
    FROM DUAL;

    結果:

    Error starting at line : 1 in command -
    SELECT LPAD('Cat', 1, '>', 2)
    FROM DUAL
    Error at Command Line : 1 Column : 28
    Error report -
    SQL Error: ORA-00939: too many arguments for function
    00939. 00000 -  "too many arguments for function"
    *Cause:    
    *Action:

    1. SQLServerフェールオーバークラスターのインストール-4

    2. オラクルのカーソルとは

    3. Oracleでカレンダーテーブルにデータを入力する方法は?

    4. データベースの歴史