MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQL ROUND()関数の出力で、小数点以下の桁数を指定する2番目の引数の負の値はどのように影響しますか?


2番目の引数の負の値を指定すると、小数点の前の桁が削除されて四捨五入されます。削除される桁数は、負の2番目の引数の値によって異なります。次の例は、ROUND()関数の出力における2番目の引数の負の値に応じた変更を示しています。

mysql> Select ROUND(1789.456,-1);
+--------------------+
| ROUND(1789.456,-1) |
+--------------------+
|               1790 |
+--------------------+
1 row in set (0.00 sec)  

上記のクエリは1790を返します。これは、小数点の前の最初の桁(値-1のために削除される)が9(> 5)であるため、この前の桁、つまり8が丸められるためです。 9にオフ。

mysql> Select ROUND(1789.456,-2);
+--------------------+
| ROUND(1789.456,-2) |
+--------------------+
|               1800 |
+--------------------+
1 row in set (0.00 sec)  

上記のクエリは1800を返します。これは、小数点の前の2桁目(値-2のために削除される)が8(> 5)であるため、この前の桁、つまり7が丸められるためです。 8にオフ。

mysql> Select ROUND(1789.456,-3);
+--------------------+
| ROUND(1789.456,-3) |
+--------------------+
|               2000 |
+--------------------+
1 row in set (0.00 sec)  

上記のクエリは2000を返します。これは、小数点の前の3桁目(値-3のために削除される)が7(> 5)であるため、この前の桁、つまり1が丸められるためです。 2にオフ。

mysql> Select ROUND(1789.456,-4);
+--------------------+
| ROUND(1789.456,-4) |
+--------------------+
|                  0 |
+--------------------+
1 row in set (0.00 sec)  

小数点までの合計桁数が4で、2番目の引数の値が-4であるため、上記のクエリは0を返します。


  1. 引数のリストに最初の引数の数よりも大きい数がない場合、どのMYSQL INTERVAL()関数が返されますか?

    この場合、MySQL INTERVAL()関数は、引数リストの最後の数値に1を加えたもののインデックス番号を返します。つまり、リストの最後のインデックス番号に1を加えたものが返されます。この関数によって。次の例はそれを示します- mysql> Select INTERVAL(50,20,32,38,40); +--------------------------+ | INTERVAL(50,20,32,38,40) | +--------------------------+ | 4               &n

  2. 文字列をリンクしているときにNULL値を追加すると、CONCAT_WS()関数の出力はどうなりますか?

    実際、CONCAT_WS()関数は、その最初の引数、つまりセパレータがNULLの場合にのみ、NULLを返します。例は以下のとおりです- mysql> Select CONCAT_ws(NULL,'Tutorial','Point','.com'); +-------------------------------------------+ | CONCAT_ws(NULL,'Tutorial','Point','.com') | +-------------------------------