SQL UPDATE 中将值四舍五入到最接近的整数

发布于 2024-08-04 05:54:06 字数 194 浏览 3 评论 0原文

我正在运行需要将值四舍五入到最接近的整数的 SQL。

我需要的是 45.01 舍入到 46。还有 45.49 舍入到 46。45.99 也舍入到 46。我希望所有内容都增加一位整数。

如何在如下 UPDATE 语句中实现此目的?

Update product SET price=Round

I'm running SQL that needs rounding up the value to the nearest whole number.

What I need is 45.01 rounds up to 46. Also 45.49 rounds to 46. And 45.99 rounds up to 46, too. I want everything up one whole digit.

How do I achieve this in an UPDATE statement like the following?

Update product SET price=Round

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

谎言月老 2024-08-11 05:54:06

您可以使用 ceiling< /a> 函数;这部分 SQL 代码:

select ceiling(45.01), ceiling(45.49), ceiling(45.99);

每次都会得到“46”。

对于您的更新,我想说:

Update product SET price = ceiling(45.01)

顺便说一句:在 MySQL 上, ceil天花板 ;不确定其他数据库系统,因此您可能必须使用其中之一,具体取决于您正在使用的数据库...

引用文档:

天花板(X)

返回最小的整数值
小于 X。

给出的例子:

mysql> SELECT CEILING(1.23);
        -> 2
mysql> SELECT CEILING(-1.23);
        -> -1

You could use the ceiling function; this portion of SQL code :

select ceiling(45.01), ceiling(45.49), ceiling(45.99);

will get you "46" each time.

For your update, so, I'd say :

Update product SET price = ceiling(45.01)

BTW : On MySQL, ceil is an alias to ceiling ; not sure about other DB systems, so you might have to use one or the other, depending on the DB you are using...

Quoting the documentation :

CEILING(X)

Returns the smallest integer value not
less than X.

And the given example :

mysql> SELECT CEILING(1.23);
        -> 2
mysql> SELECT CEILING(-1.23);
        -> -1
世态炎凉 2024-08-11 05:54:06

尝试天花板...

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

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

Try ceiling...

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

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

画▽骨i 2024-08-11 05:54:06

对于 MS SQL CEILING(您的数字)会将其四舍五入。
FLOOR(您的号码)将向下舍入

For MS SQL CEILING(your number) will round it up.
FLOOR(your number) will round it down

你的心境我的脸 2024-08-11 05:54:06

将圆形和天花板结合起来以获得适当的圆形。

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

同时

select round(984.375000, 0) => 984.000000

select ceil (984.375000) => 985

Combine round and ceiling to get a proper round up.

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

while

select round(984.375000, 0) => 984.000000

and

select ceil (984.375000) => 985
舞袖。长 2024-08-11 05:54:06

如果要四舍五入,请使用舍入函数。当您想要获得仅大于参数的最小整数时,请使用上限函数。

例如:从 Dual 中选择 round(843.4923423423,0) 会给你 843 和

从中选择回合(843.6923423423,0)
双给你 844

If you want to round off then use the round function. Use ceiling function when you want to get the smallest integer just greater than your argument.

For ex: select round(843.4923423423,0) from dual gives you 843 and

select round(843.6923423423,0) from
dual gives you 844

゛清羽墨安 2024-08-11 05:54:06

Ceiling 是您要使用的命令。

与 Round 不同,Ceiling 仅采用一个参数(您希望向上舍入的值),因此如果您想四舍五入到小数位,您需要先将数字乘以小数点后的位数,然后再除。

例子。

我想将 1.2345 四舍五入到小数点后两位。

CEILING(1.2345*100)/100 AS Cost

Ceiling is the command you want to use.

Unlike Round, Ceiling only takes one parameter (the value you wish to round up), therefore if you want to round to a decimal place, you will need to multiply the number by that many decimal places first and divide afterwards.

Example.

I want to round up 1.2345 to 2 decimal places.

CEILING(1.2345*100)/100 AS Cost
温柔戏命师 2024-08-11 05:54:06

这取决于数据库服务器,但通常称为 CEILCEILING 之类的名称。例如,在 MySQL 中...

mysql> select ceil(10.5);
+------------+
| ceil(10.5) |
+------------+
|         11 | 
+------------+

然后您可以执行 UPDATE PRODUCT SET Price=CEIL(some_other_field);

This depends on the database server, but it is often called something like CEIL or CEILING. For example, in MySQL...

mysql> select ceil(10.5);
+------------+
| ceil(10.5) |
+------------+
|         11 | 
+------------+

You can then do UPDATE PRODUCT SET price=CEIL(some_other_field);

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文