%(取模)(Transact-SQL)

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure Synapse AnalyticsAnalytics Platform System (PDW)Microsoft Fabric 中的 SQL 分析终结点Microsoft Fabric 中的仓库

返回两数相除后的余数。

Transact-SQL 语法约定

语法

dividend % divisor

注意

若要查看 SQL Server 2014 (12.x) 及更早版本的 Transact-SQL 语法,请参阅早期版本文档

参数

dividend

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

divisor

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

结果类型

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

注解

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

示例

本文中的 Transact-SQL 代码示例使用AdventureWorks2022示例数据库,可以从 Microsoft SQL Server 示例和社区项目主页下载该数据库。

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 和 Analytics Platform System (PDW)

C:基本示例

以下示例显示除以32运算符时的结果%

SELECT TOP(1) 3 % 2
FROM DimEmployee;

下面是结果集:

1