web-dev-qa-db-ja.com

SQL UPDATEで値を最も近い整数に切り上げます

値を最も近い整数に切り上げる必要があるSQLを実行しています。

必要なのは、45.01から46に切り上げます。45.49から46に切り上げます。また、45.99から46に切り上げます。すべてを1桁上げたい。

次のようなUPDATEステートメントでこれを達成するにはどうすればよいですか?

Update product SET price=Round
18
Skuta

少なくともMySQLでは ceil 関数を使用できます。 SQLコードのこの部分:

_select ceil(45.01), ceil(45.49), ceil(45.99);
_

毎回「46」を取得します。

あなたの更新のために、私は言うでしょう:

_Update product SET price = ceil(45.01)
_


BTW:MySQLでは、 ceilceiling のエイリアスです。他のDBシステムについてはわからないので、使用しているDBに応じて、どちらかを使用する必要があります...


ドキュメントの引用:

CEILING(X)

X以上の最小の整数値を返します。

そして、与えられた例:

_mysql> SELECT CEILING(1.23);
        -> 2
mysql> SELECT CEILING(-1.23);
        -> -1
_
25
Pascal MARTIN

試すceiling...

SELECT Ceiling(45.01), Ceiling(45.49), Ceiling(45.99)

http://en.wikipedia.org/wiki/Floor_and_ceiling_functions

14
pjp

天井は、使用するコマンドです。

ラウンドとは異なり、天井は1つのパラメーター(切り上げたい値)のみを取得するため、小数点以下の桁数に丸める場合は、まずその数の小数点以下の桁数を乗算し、その後で除算する必要があります。

例。

1.2345を小数点以下2桁に切り上げます。

CEILING(1.2345*100)/100 AS Cost
4

MS SQL CEILING(あなたの番号)の場合は切り上げられます。 FLOOR(あなたの番号)は切り捨てます

4
Gil Allen

四捨五入する場合は、ラウンド関数を使用します。引数よりも大きい最小の整数を取得する場合は、天井関数を使用します。

例:デュアルからラウンド(843.4923423423,0)を選択すると843と

デュアルからラウンド(843.6923423423,0)を選択すると、844が得られます

3
Cshah

これはデータベースサーバーによって異なりますが、多くの場合CEILCEILINGなどと呼ばれます。たとえば、MySQLでは...

_mysql> select ceil(10.5);
+------------+
| ceil(10.5) |
+------------+
|         11 | 
+------------+
_

その後、UPDATE PRODUCT SET price=CEIL(some_other_field);を実行できます

2
a1kmm

ラウンドとシーリングを組み合わせて、適切な切り上げを行います。

select ceiling(round(984.375000), 0)) => 984

ながら

select round(984.375000, 0) => 984.000000

そして

select ceil (984.375000) => 985
1
Edwin