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

OracleのLTRIM()関数

    Oracleでは、LTRIM() 関数を使用すると、文字列の左側の部分をトリミングできます。デフォルトでは空白を削除しますが、オプションで別の1つまたは複数の文字を指定して削除することができます。

    構文

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

    LTRIM(char [, set ])

    charの場所 およびset CHARの任意のデータ型にすることができます 、VARCHAR2NCHARNVARCHAR2CLOB 、またはNCLOB

    LTRIM charの左端から削除します setに含まれるすべての文字 setを指定しない場合 、デフォルトでは単一の空白になります。

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

    SELECT LTRIM('     Cat')
    FROM DUAL;

    結果:

       LTRIM('CAT') 
    _______________ 
    Cat            

    この場合、トリミングする文字を指定しなかったため、各空白は文字列の左側からトリミングされました。

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

    SELECT '     Cat'
    FROM DUAL
    UNION ALL
    SELECT LTRIM('     Cat')
    FROM DUAL;

    結果:

          'CAT' 
    ___________ 
         Cat    
    Cat        

    文字を指定

    この例では、トリミングする文字を指定します:

    SELECT LTRIM('...Cat...', '.')
    FROM DUAL;

    結果:

       LTRIM('...CAT...','.') 
    _________________________ 
    Cat...                    

    したがって、キャラクターが左側からトリミングされているが、右側からはトリミングされていないことがわかります。右側をトリミングするには、RTRIM()を使用します またはTRIM()

    LTRIM()に注意してください セットに含まれていないキャラクターが現れるまで、セットアップ内のキャラクターのみをトリミングします。これが私の言いたいことの例です:

    SELECT LTRIM('...A...Cat', '.')
    FROM DUAL;

    結果:

       LTRIM('...A...CAT','.') 
    __________________________ 
    A...Cat                   

    ただし、Aを含めると セット内では、異なる結果が得られます:

    SELECT LTRIM('...A...Cat', '.A')
    FROM DUAL;

    結果:

       LTRIM('...A...CAT','.A') 
    ___________________________ 
    Cat                        

    データベースの例

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

    SELECT 
        country_name,
        LTRIM(country_name, 'Ar') AS Trimmed
    FROM countries
    FETCH FIRST 5 ROWS ONLY;

    結果:

       COUNTRY_NAME     TRIMMED 
    _______________ ___________ 
    Argentina       gentina     
    Australia       ustralia    
    Belgium         Belgium     
    Brazil          Brazil      
    Canada          Canada     

    ヌル値

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

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

    結果:

       LTRIM(NULL,3)    LTRIM('CAT',NULL)    LTRIM(NULL,NULL) 
    ________________ ____________________ ___________________ 
    null             null                 null               

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

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

    空の文字列のトリミング

    2番目の引数として空の文字列を渡すと、nullになります。 :

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

    結果:

       LTRIM('CAT','') 
    __________________ 
    null              

    ただし、空の文字列に1つのスペースを追加すると、それが変更され、文字列の左側から空白スペースが削除されます。

    SELECT LTRIM('   Cat', ' ')
    FROM DUAL;

    結果:

       LTRIM('CAT','') 
    __________________ 
    Cat               

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

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

    SELECT LTRIM()
    FROM DUAL;

    結果:

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

    結果:

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

    1. PostgreSQLがユーザーとグループをロールにマージしたのはなぜですか?

    2. OracleDatabaseClientを段階的にインストールする

    3. MySQLでのOCT()関数のしくみ

    4. Robolectricアクセスデータベースはエラーをスローします