Подтвердить что ты не робот

Округлить значение до ближайшего целого числа в SQL UPDATE

Я запускаю SQL, который требует округления значения до ближайшего целого числа.

Мне нужно 45.01 раундов до 46. Также 45.49 раундов до 46. И 45.99 раундов до 46, тоже. Я хочу, чтобы все было на одну цифру.

Как это сделать в инструкции UPDATE, как показано ниже?

Update product SET price=Round
4b9b3361

Ответ 1

Вы можете использовать функцию ceil, по крайней мере, на MySQL; эта часть кода SQL:

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

вы получите "46" каждый раз.

Для вашего обновления, я бы сказал:

Update product SET price = ceil(45.01)


BTW: В MySQL ceil является псевдонимом ceiling; не уверены в других системах БД, поэтому вам, возможно, придется использовать тот или иной, в зависимости от используемой вами базы данных...


Указание документации:

CEILING(X)

Возвращает наименьшее целочисленное значение, а не меньше X.

И приведенный пример:

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

Ответ 3

Для MS SQL CEILING (ваш номер) округляет его. FLOOR (ваш номер) округляет его

Ответ 4

Потолок - это команда, которую вы хотите использовать.

В отличие от Round, Ceiling принимает только один параметр (значение, которое вы хотите округлить), поэтому, если вы хотите округлить до десятичной точки, вам нужно будет сначала умножить число на несколько десятичных знаков и разделить его.

Пример.

Я хочу округлить от 1.2345 до 2 знаков после запятой.

CEILING(1.2345*100)/100 AS Cost

Ответ 5

Если вы хотите округлить, используйте круглую функцию. Используйте функцию потолка, когда вы хотите получить наименьшее целое число, большее вашего аргумента.

Например: select round (843.4923423423,0) из double дает вам 843 и

выберите раунд (843.6923423423,0) из dual дает вам 844

Ответ 6

Это зависит от сервера базы данных, но его часто называют чем-то вроде CEIL или CEILING. Например, в MySQL...

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

Затем вы можете сделать UPDATE PRODUCT SET price=CEIL(some_other_field);

Ответ 7

Объедините круг и потолок, чтобы получить правильное округление.

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

в то время как

select round(984.375000, 0) => 984.000000

а также

select ceil (984.375000) => 985