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

MariaDBでのROUND()のしくみ

    MariaDBでは、ROUND() は、引数を指定された小数点以下の桁数に丸める組み込みの数値関数です。

    構文

    この関数は、次の2つの方法で使用できます。

    ROUND(X)
    ROUND(X,D)

    ここでX は丸める値であり、D 四捨五入する小数点以下の桁数を指定するオプションの引数です。

    次に例を示します:

    SELECT ROUND(7.5);

    結果:

    +------------+
    | ROUND(7.5) |
    +------------+
    |          8 |
    +------------+

    負の値を渡すと、次の結果が生成されます。

    SELECT ROUND(-7.5);

    結果:

    +-------------+
    | ROUND(-7.5) |
    +-------------+
    |          -8 |
    +-------------+

    小数点以下の桁数を指定

    デフォルトでは、ROUND() 関数は、値を小数点以下0桁に丸めます。 2番目の引数を渡すことで、値を四捨五入する小数点以下の桁数を指定できます。

    例:

    SELECT ROUND(7.5164, 2);

    結果:

    +------------------+
    | ROUND(7.5164, 2) |
    +------------------+
    |             7.52 |
    +------------------+

    負の小数点以下の桁数

    2番目の引数は、必要に応じて負の値にすることができます。負の値を渡すと、に数字が表示されます 小数点以下の桁数がゼロになります。

    例:

    SELECT ROUND(3724.51, -2);

    結果:

    +--------------------+
    | ROUND(3724.51, -2) |
    +--------------------+
    |               3700 |
    +--------------------+

    FLOOR()との比較

    ROUND() 関数はFLOOR()とは異なります 働き。 ROUND() 関数は、数値を切り上げる場合と切り下げる場合があります。 FLOOR() 一方、関数は常に引数以下の最大の整数値を返します。

    この違いを示すための比較は次のとおりです。

    SELECT 
        FLOOR(3.6789),
        ROUND(3.6789);

    結果:

    +---------------+---------------+
    | FLOOR(3.6789) | ROUND(3.6789) |
    +---------------+---------------+
    |             3 |             4 |
    +---------------+---------------+

    また、FLOOR() ROUND()のような2番目の引数を受け入れません

    ROUND() TRUNCATE()とも異なります 関数。四捨五入せずに、数値を小数点以下の桁数に切り捨てるだけです。

    非数値引数

    数値以外の引数を指定すると、次のようになります。

    SELECT ROUND('Ten');

    結果:

    +--------------+
    | ROUND('Ten') |
    +--------------+
    |            0 |
    +--------------+
    1 row in set, 1 warning (0.028 sec)

    警告を確認しましょう:

    SHOW WARNINGS;

    結果:

    +---------+------+-----------------------------------------+
    | Level   | Code | Message                                 |
    +---------+------+-----------------------------------------+
    | Warning | 1292 | Truncated incorrect DOUBLE value: 'Ten' |
    +---------+------+-----------------------------------------+

    引数がありません

    ROUND()を呼び出す 引数がないとエラーになります:

    SELECT ROUND();

    結果:

    ERROR 1582 (42000): Incorrect parameter count in the call to native function 'ROUND'

    1. MariaDBの日時値からマイクロ秒を減算します

    2. TRY_CAST()がSQLServerでどのように機能するか

    3. 過去10日間の日付のレコードを一覧表示するにはどうすればよいですか?

    4. MySQL/MariaDB-サブクエリ内で並べ替え