% (остаток от деления) (Transact-SQL)

Относится к:SQL ServerБаза данных SQL AzureУправляемый экземпляр SQL AzureAzure Synapse AnalyticsSQL аналитическая конечная точка в Microsoft FabricХранилище в Microsoft FabricSQL база данных в Microsoft Fabric

Возвращает остаток от деления одного числа на другое.

Соглашения о синтаксисе Transact-SQL

Syntax

dividend % divisor

Arguments

dividend

Делимое числовое выражение. Аргумент dividend должен быть допустимым выражением любого типа из категорий целочисленных или денежных типов данных или типа numeric.

divisor

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

Типы результатов

Определяются типами данных обоих аргументов.

Remarks

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

Examples

Образцы кода в этой статье используют AdventureWorks2025, AdventureWorksDW2025или AdventureWorksLT2025 примерную базу данных, которую можно скачать из репозитория GitHub Azure Data Data SQL Samples Repository (Сэмпл SQL).

A. Базовый пример

В следующем примере число 38 делится на 5. Результат является 7 целочисленной частью результата и демонстрирует, как модуло возвращает оставшуюся часть 3.

SELECT
    38 / 5 AS [Integer],
    38 % 5 AS [Remainder];

B. Пример с использованием столбцов в таблице

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

SELECT TOP (100) ProductID,
    UnitPrice,
    OrderQty,
    CAST((UnitPrice) AS INT) % OrderQty AS Modulo
FROM Sales.SalesOrderDetail;
GO

Примеры: Azure Synapse Analytics

C: базовый пример

В следующем примере показаны результаты для % оператора при делении 3 на 2.

SELECT TOP(1) 3 % 2
FROM DimEmployee;

Вот результирующий набор.

1