在SQL UPDATE中将值向上舍入为最接近的整数

Sku*_*uta 18 sql rounding sql-update

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

我需要的是45.01轮到46轮.还有45.49轮到46轮.还有45.99轮到46轮.我希望一切都达到一个整数位.

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

Update product SET price=Round
Run Code Online (Sandbox Code Playgroud)

Pas*_*TIN 25

你可以使用这个ceil函数,至少在MySQL上; 这部分SQL代码:

select ceil(45.01), ceil(45.49), ceil(45.99);
Run Code Online (Sandbox Code Playgroud)

每次都会让你"46".

为了您的更新,我会说:

Update product SET price = ceil(45.01)
Run Code Online (Sandbox Code Playgroud)


BTW:在MySQL上,ceil是别名ceiling; 不确定其他数据库系统,因此您可能必须使用其中一个,具体取决于您使用的数据库...


引用文档:

CEILING(X)

返回不小于X的最小整数值.

给出的例子:

mysql> SELECT CEILING(1.23);
        -> 2
mysql> SELECT CEILING(-1.23);
        -> -1
Run Code Online (Sandbox Code Playgroud)


pjp*_*pjp 14

试试天花板 ......

SELECT Ceiling(45.01), Ceiling(45.49), Ceiling(45.99)
Run Code Online (Sandbox Code Playgroud)

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


小智 6

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

select ceiling(round(984.375000), 0)) => 984
Run Code Online (Sandbox Code Playgroud)

尽管

select round(984.375000, 0) => 984.000000
Run Code Online (Sandbox Code Playgroud)

select ceil (984.375000) => 985
Run Code Online (Sandbox Code Playgroud)


Csh*_*hah 5

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

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

从 Dual 中选择 round(843.6923423423,0) 会给你 844


Gil*_*len 5

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


mar*_*234 5

Ceiling 是您要使用的命令。

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

例子。

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

CEILING(1.2345*100)/100 AS Cost
Run Code Online (Sandbox Code Playgroud)