Sql округление в большую сторону

Sql округление в большую сторону

Базы данных

В этом учебном пособии вы узнаете, как использовать Oracle/PLSQL функцию ROUND с синтаксисом и примерами.

Описание

Oracle/PLSQL функция ROUND возвращает число, округленное до определенного количества знаков после запятой.

Синтаксис

Синтаксис Oracle/PLSQL функции ROUND (для чисел):

Параметры или аргументы

number число для округления.

decimal_places количество десятичных знаков округления. Это значение должно быть целым числом. Если этот параметр не указан, ROUND функция будет округлять число до ближайшего целого.

Функция ROUND (применительно к числам) возвращает numeric значение.

Применение

Функцию ROUND можно использовать в следующих версиях Oracle/PLSQL:

  • Oracle 12c, Oracle 11g, Oracle 10g, Oracle 9i, Oracle 8i

Пример

Рассмотрим несколько примеров функции ROUND и изучим, как использовать функцию ROUND в Oracle/PLSQL.

ROUND() — данная функция используется для округление плавающего числа.

Синтаксис SQL ROUND()

Параметр Описание
column_name Требуется. Символы для округление
decimals Требуется. Задается количество десятичных знаков, которые должны быть возвращены.

Пример SQL ROUND()

Есть следующая таблица "Products":

Prod_Id ProductName Unit UnitPrice
1 Jarlsberg 1000 g 10.45
2 Mascarpone 1000 g 32.56
3 Gorgonzola 1000 g 15.67

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

Функция SQL ROUND

Функция SQL ROUND(результат_вычислений, n) округляет результат вычислений до n-го знака после запятой. Округление производится по правилам арифметики.

Если n — отрицательное число (−n), то округление происходит до n-го знака перед запятой. Таким образом, с помощью функции ROUND можно получить и целое число как результат округления.

Пример 1. В базе данных фирмы есть таблица Staff, содержащая данные о сотрудниках фирмы. Выведем индивидуальные размеры заработной платы сотрудников:

Результатом выполнения запроса будет следующая таблица:

Name Salary
Sanders 18357.5
Pernal 15430.0
Marenghi 17506.8
Doctor 12322.8
Factor 16228.7
Junkers 16232.8
Moonlight 21500.6
Aisen 19540.7
MacGregor 15790.8
Читайте также:  Трещины в стене из керамзитобетонных блоков

Для вычисления среднего размера заработной платы пишем запрос:

Получим следующий результат:

AVG(Salary)
16990.06662326389

Для отчётов результат с таким числом знаков после запятой не годится. Округлим результат до второго знака после запятой с помощью функции ROUND:

Результат будет следующим:

Avg_Salary
16990.07

Пример 2. Теперь округлим результат до первого знака до запятой, применяя в функции ROUND параметр минус единица:

Результат будет следующим:

Avg_Salary
16990

Сместим округление ещё на один знак влево и применим в функции ROUND параметр минус 2:

Результат будет следующим:

Avg_Salary
17000

Функция SQL ROUND может применяться ещё и с третьим необязательными параметром (кроме MySQL). Если этим параметром будет 1, то округление производиться не будет, просто в результате будет оставлено столько знаков после запятой, сколько указано во втором параметре.

Пример 3. Оставить в результате вычислений средней заработной платы два знака после запятой, не производя округления. Применяем функцию ROUND с тремя параметрами:

Результат будет следующим:

Avg_Salary
16990.06

Функция MySQL TRUNCATE

В MySQL аналогом разновидности функции ROUND без округления результата является функция TRUNCATE. Она, как и ROUND в общем случае имеет два параметра: результат вычислений и число знаков после запятой.

Пример 4. Условие то же, что в примере 3, но в MySQL. Применяем функцию TRUNCATE:

Получим результат без округления, как в предыдущем примере:

Avg_Salary
16990.06

Функция SQL CEILING

Функция SQL CEILING не производит округления. Она просто принимает дробное число и возвращает максимальное целое число, не меньшее принятого. Приведём примеры действия функции с различными принятыми дробными числами.

Функция с аргументом Возвращаемое значение
CEILING(0.38) 1
CEILING(1.63) 2
CEILING(−0.38)
CEILING(−1.63) −1

В случае функции CEILING некорректно говорить об округлении, поскольку она преобразует числа без учёта правил арифметики.

Читайте также:  Программа не содержит статического метода main

Функция SQL FLOOR

Функция FLOOR также не производит округления. Её действие противоположно действию функции CEILING. Она принимает дробное число и возвращает максимальное целое число, не большее принятого. Приведём примеры действия функции с различными принятыми дробными числами.

Функция с аргументом Возвращаемое значение
FLOOR(0.38)
FLOOR(1.63) 1
FLOOR(−0.38) −1
FLOOR(−1.63) −2

Функция FLOOR, как и функция CEILING, преобразует числа без учёта правил арифметики.

Ссылка на основную публикацию
Project is unviewable как снять защиту
Несколько полезных утилит для тех, кто часто работает с макросами: Smart Indenter - выравнивает код в редакторе VBA (формирует отступы...
Micro thumbnail blob 0 что за файл
File Thumbnail_blob.0 и прочие файлы галереи. За что они отвечают и можно ли удалять?! На развитие канала: не принуждаю никого,...
Minitool partition wizard как форматировать флешку
Форматирование жесткого диска это процесс формирования новой файловой таблицы и создания раздела. При этом все данные на диске удаляются. Причин...
Python посчитать количество элементов в массиве
Есть массив, в котором куча повторяющихся элементов. Мне надо вывести содержимое конкретного элемента этого массива и сколько таких же элементов...
Adblock detector