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

OracleのROUND(number)関数

    Oracleでは、ROUND(number) 関数は、指定された小数点以下の桁数に丸められた数値を返します。

    デフォルトでは、数値は小数点以下0桁に丸められますが、使用する小数点以下の桁数を指定するオプションの引数を指定できます。

    OracleにはROUND(date)もあります 日付に使用される構文。この記事は、ROUND(number)に関するものです。 数値に使用される構文。

    構文

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

    ROUND(n [, integer ])

    n 任意の数値データ型または暗黙的に数値データ型に変換できる任意の非数値データ型、および integer nを丸める小数点以下の桁数を指定するオプションの整数です。 に。

    次に例を示します:

    SELECT ROUND(7.85)
    FROM DUAL;

    結果:

       ROUND(7.85) 
    ______________ 
                 8 

    負の値

    負の値に切り替えると、次の結果が生成されます。

    SELECT ROUND(-7.85)
    FROM DUAL;

    結果:

       ROUND(-7.85) 
    _______________ 
                 -8

    2番目の引数

    2番目の引数を提供する例を次に示します。

    SELECT ROUND(7.85, 1)
    FROM DUAL;

    結果:

       ROUND(7.85,1) 
    ________________ 
                 7.9

    この場合、結果を小数点第1位に四捨五入するように指定しました。

    小数点以下の桁数が多い別の例を次に示します。

    SELECT ROUND(3.14159265359, 4)
    FROM DUAL;

    結果:

       ROUND(3.14159265359,4) 
    _________________________ 
                       3.1416

    負の丸め

    2番目の引数に負の値を指定することもできます。これを行うと、小数点の左側の数値が四捨五入されます:

    SELECT ROUND(75631, -3)
    FROM DUAL;

    結果:

       ROUND(75631,-3) 
    __________________ 
                 76000

    非数値引数の丸め

    数値データ型に変換できない非数値引数を丸めようとすると、次のようになります。

    SELECT ROUND('Bruce')
    FROM DUAL;

    結果:

    Error starting at line : 1 in command -
    SELECT ROUND('Bruce')
    FROM DUAL
    Error report -
    ORA-01722: invalid number

    ただし、日付を丸めることはできます。この関数には、日付を丸めることができる日付バージョンがあります。

    ヌル値

    nullを丸めようとしています nullを返します 、およびnullで数値を丸めようとしています また、nullになります :

    SET NULL 'null';
    
    SELECT 
        ROUND(null),
        ROUND(null, 2),    
        ROUND(2.345, null)
    FROM DUAL;

    結果:

       ROUND(NULL)    ROUND(NULL,2)    ROUND(2.345,NULL) 
    ______________ ________________ ____________________ 
              null             null                 null 

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

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

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

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

    SELECT ROUND()
    FROM DUAL;

    結果:

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

    結果:

    Error starting at line : 1 in command -
    SELECT ROUND(1.34, 2, 3)
    FROM DUAL
    Error at Command Line : 1 Column : 23
    Error report -
    SQL Error: ORA-00939: too many arguments for function
    00939. 00000 -  "too many arguments for function"
    *Cause:    
    *Action:

    1. プリズマ関係

    2. 日付の間にmysqlクエリを選択しますか?

    3. java.sql.SQLException:不正な文字列値:'\ xF0 \ x9F \ x91 \ xBD \ xF0 \ x9F ...'

    4. 行が変更された場合にのみ、更新後にMySQLトリガー