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

Oracleで数値をパーセンテージとしてフォーマットする

    OracleDatabaseには TO_CHAR(number)がありますが 数値をフォーマットできる関数ですが、パーセント記号のフォーマット要素は提供していません。

    したがって、Oracle Databaseで数値をパーセンテージとしてフォーマットする場合は、パーセント記号と数値を連結する必要があります。

    CONCAT()を使用できます 数値とパーセント記号を連結する関数。

    TO_CHAR(number)は引き続き使用できます 必要な小数点以下の桁数、先行ゼロ(またはそうでない)などになるように数値をフォーマットする関数:

    SELECT CONCAT(TO_CHAR(18, 'fm00D00'), '%')
    FROM DUAL;

    結果:

    18.00%

    ここでは、0を使用しました format要素。これは、先頭/末尾のゼロが含まれている場合でも、数字の位置が常に印刷されることを意味します。

    fmも使用しました 先頭/末尾のゼロまたは空白を抑制するためのフォーマット修飾子。

    これは他のいくつかのフォーマットモデルです:

    SELECT 
        CONCAT(TO_CHAR(7, 'fm00'), '%') AS "1",
        CONCAT(TO_CHAR(7, 'fm99'), '%') AS "2",
        CONCAT(TO_CHAR(7.4567, 'fm0D00'), '%') AS "3",
        CONCAT(TO_CHAR(7, 'fm0D00'), '%') AS "4"
    FROM DUAL;

    結果:

         1     2        3        4 
    ______ _____ ________ ________ 
    07%    7%    7.46%    7.00%   

    必要に応じて、数値に対して計算を実行できます:

    SELECT 
        CONCAT(TO_CHAR(18 * 0.1, 'fm99D00'), '%') AS "1",
        CONCAT(TO_CHAR(0.18 * 100, 'fm99D00'), '%') AS "2"
    FROM DUAL;

    結果:

           1         2 
    ________ _________ 
    1.80%    18.00%   

    この場合、9を含めました 先行ゼロが省略されるように要素をフォーマットします。

    TO_CHAR()を省略します 機能

    数値をパーセンテージ形式に変換する以外に特に必要がない場合は、TO_CHAR()も必要ありません。 機能:

    SELECT CONCAT(18, '%')
    FROM DUAL;

    結果:

    18%

    連結演算子

    数値とパーセント記号を連結する別の方法は、連結演算子(||)を使用することです。 ):

    SELECT 18 || '%'
    FROM DUAL;

    結果:

    18%

    そしてここにTO_CHAR()があります 追加のフォーマットのために追加された機能:

    SELECT TO_CHAR(18, 'fm00D00') || '%'
    FROM DUAL;

    結果:

    18.00%

    1. MySQLWorkbenchを使用したMySQLデータベースのリバースエンジニアリング

    2. Datetimeを使用して文字列として保存された日付を比較する

    3. MariaDB FOUND_ROWS()の説明

    4. SQLiteでiif()がどのように機能するか