%(取模)(Transact-SQL)

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

返回两数相除后的余数。

Transact-SQL 语法约定

语法

dividend % divisor

参数

dividend

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

divisor

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

结果类型

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

注解

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

示例

本文中的 Transact-SQL 代码示例使用 AdventureWorks2022AdventureWorksDW2022 示例数据库,可从 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