%(取模)(Transact-SQL)

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure Synapse Analytics分析平台系统 (PDW)Microsoft Fabric 中的 SQL 分析终结点Microsoft Fabric 中的仓库Microsoft Fabric 预览版中的 SQL 数据库

返回两数相除后的余数。

Transact-SQL 语法约定

Syntax

dividend % divisor

Arguments

dividend

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

divisor

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

Result types

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

Remarks

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

Examples

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

A. Basic example

以下示例将数字 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:基本示例

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

SELECT TOP(1) 3 % 2
FROM DimEmployee;

结果集如下。

1