Функция SQL Server FLOOR()

В этом руководстве вы узнаете, как использовать функцию FLOOR() SQL Server для округления числа до ближайшего целого числа, которое меньше или равно входному значению.

Синтаксис функции FLOOR SQL Server

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

Вот синтаксис функции FLOOR():

FLOOR(numeric_expression)

В этом синтаксисе числовое_выражение — это число или выражение, которое требуется округлить до ближайшего целого числа.

Функция FLOOR() возвращает число, тип которого зависит от типа числового выражения.

В следующей таблице показан тип входного значения и соответствующий тип возвращаемого значения функции FLOOR():

Тип ввода Тип возврата
плавающий, реальный плавать
десятичная дробь(п, с) десятичная(38, с)
int, smallint, tinyint инт
bigint bigint
деньги, маленькиеденьги деньги
кусочек плавать

Примеры функции SQL Server FLOOR()

Давайте рассмотрим несколько примеров использования функции FLOOR().

1) Использование функции SQL Server FLOOR() с положительными числами

В следующем примере функция FLOOR() используется для округления положительных чисел в меньшую сторону:

SELECT
  FLOOR(11.51) x,
  FLOOR(11.25) y;

Выход:

x  | y
---+----
11 | 11

2) Использование функции FLOOR() с отрицательными числами

В следующем операторе функция FLOOR() используется для округления отрицательных чисел в меньшую сторону:

SELECT
  FLOOR(-11.51) x,
  FLOOR(-11.25) y;

Выход:

x   | y
----+----
-12 | -12

3) Использование функции FLOOR с денежными значениями

В следующем примере функция FLOOR() используется для округления денежного значения в меньшую сторону:

SELECT
  FLOOR($100/3) amount;

Выход:

amount
-------
33.0000

4) Использование функции FLOOR с табличными данными

Сначала создайте таблицу под названием «teams» для хранения названия команды и общего количества ее участников:

CREATE TABLE teams(
   id INT IDENTITY PRIMARY KEY,
   name VARCHAR(255) NOT NULL,
   total_member INT NOT NULL
);

Во-вторых, вставьте строки в таблицу команд:

INSERT INTO
  teams(name, total_member)
VALUES
 ('A', 12),
 ('B', 11),
 ('C', 15);

В-третьих, используйте функцию FLOOR, чтобы распределить 100 предметов между каждой командой в таблице команд, гарантируя, что каждый участник получит одинаковое количество предметов:

SELECT
  name,
  total_member,
  FLOOR(100 / total_member) item_count
FROM
  teams;

Выход:

name | total_member | item_count
-----+--------------+-----------
A    | 12           | 8
B    | 11           | 9
C    | 15           | 6
(3 rows)

Краткое содержание

  • Используйте функцию FLOOR(), чтобы округлить число до ближайшего целого числа, которое меньше или равно входному значению.
Мирослав С.

Автор статей, ИБ-специалист