%(取模)(Transact-SQL)

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure Synapse AnalyticsMicrosoft Fabric中的SQL分析端点Microsoft Fabric中的仓库Microsoft Fabric中的SQL数据库

返回两数相除后的余数。

Transact-SQL 语法约定

Syntax

dividend % divisor

Arguments

dividend

被除数的数值表达式。 dividend 必须为整数和货币数据类型类别中任意一种数据类型的有效表达式,或者为 numeric 数据类型。

divisor

要对其除以股息的数字表达式。 divisor 必须为整数和货币数据类型类别中任意一种数据类型的任意有效表达式,或者为 numeric 数据类型。

结果类型

由两个参数的数据类型确定。

Remarks

可以在语句的选择列表中 SELECT 使用模数算术运算符,该运算符具有列名、数值常量或任何整数和货币数据类型类别的任何有效表达式的组合,或 数值 数据类型。

Examples

本文中的代码示例使用AdventureWorks2025了 、 AdventureWorksDW2025或AdventureWorksLT2025示例数据库,您可以从 Azure Data SQL Samples Repository 的 GitHub 仓库下载。

A. 基本示例

以下示例将数字 38 除以 5。 结果为结果 7 的整数部分,并演示了 modulo 如何返回余数 3。

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

B. 使用表中的列的示例

以下示例返回产品 ID 号、产品单价、除以每种产品的单价后得到的模(余数)、转换为整数值,以及订购的产品数。

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