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

Oracleでマイナス/プラス記号を使用して数値をフォーマットする方法

    TO_CHAR()を使用する場合 Oracle Databaseで数値をフォーマットする関数では、Sを使用できます。 要素をフォーマットして、その符号を返します(つまり、正の値の場合はプラス記号、負の値の場合はマイナス記号)。

    MIを使用することもできます 末尾に負の符号が付いた負の値と、末尾に空白が付いた正の値を返すように要素をフォーマットします。

    Sの例 フォーマット要素

    Sを示す例を次に示します。 フォーマット要素:

    SELECT 
        TO_CHAR(-7, 'S9') AS "Negative",
        TO_CHAR(7, 'S9') AS "Positive"
    FROM DUAL;

    結果:

       Negative    Positive 
    ___________ ___________ 
    -7          +7         

    S あるいは、フォーマット要素をフォーマットモデルの最後の位置に適用することもできます。これにより、結果に記号が追加されます:

    SELECT 
        TO_CHAR(-7, '9S') AS "Negative",
        TO_CHAR(7, '9S') AS "Positive"
    FROM DUAL;

    結果:

       Negative    Positive 
    ___________ ___________ 
    7-          7+         

    しかし、S format要素は、フォーマットモデルの両端に表示することはできません。含まれている場合、エラーが発生します:

    SELECT TO_CHAR(7, 'S9S')
    FROM DUAL;

    結果:

    Error report -
    ORA-01481: invalid number format model

    MI フォーマット要素

    MI format要素 数値が負の場合は末尾の負の符号、正の場合は末尾の空白:

    SELECT 
        TO_CHAR(-7, '9MI') AS "Negative",
        TO_CHAR(7, '9MI') AS "Positive"
    FROM DUAL;

    結果:

       Negative    Positive 
    ___________ ___________ 
    7-          7          

    MIに注意してください format要素は、formatモデルの最後の位置にのみ表示できます。他の位置にある場合は、エラーが発生します:

    SELECT TO_CHAR(7, 'MI9')
    FROM DUAL;

    結果:

    Error report -
    ORA-01481: invalid number format model

    1. SQLServer2008でトランザクションログを表示する方法

    2. PostgreSQLでのテキスト圧縮

    3. JDBCthinおよびJKSを使用したOracleDatabaseTLS1.2/SSL接続

    4. 既存の設定を失うことなくMySQLのsql_modeにオプションを追加する方法