% (Módulo) (Transact-SQL)

Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) Punto de conexión de análisis SQL en Microsoft Fabric Almacenamiento en Microsoft Fabric

Devuelve el resto de un número dividido entre otro.

Convenciones de sintaxis de Transact-SQL

Sintaxis

dividend % divisor

Argumentos

dividend

Expresión numérica que se va a dividir. dividend debe ser una expresión válida de cualquiera de los tipos de datos de las categorías de tipos de datos enteros y de moneda, o bien del tipo de datos numeric.

divisor

Expresión numérica por la que se va a dividir el dividendo. divisor debe ser cualquier expresión válida de cualquiera de los tipos de datos de las categorías de tipos de datos enteros y de moneda, o bien del tipo de datos numeric.

Tipos de resultado

Determinados por los tipos de datos de los dos argumentos.

Comentarios

Puede usar el operador aritmético módulo en la lista de selección de la SELECT instrucción con cualquier combinación de nombres de columna, constantes numéricas o cualquier expresión válida de las categorías de tipo de datos entero y monetario, o el tipo de datos numérico .

Ejemplos

Los ejemplos de código de Transact-SQL de este artículo utilizan la base de datos de ejemplo AdventureWorks2022 o AdventureWorksDW2022, que se pueden descargar desde la página principal de Ejemplos y proyectos de la comunidad de Microsoft SQL Server.

A Ejemplo básico

En el ejemplo siguiente se divide el número 38 por 5. El resultado es 7 como la parte entera del resultado y muestra cómo el módulo devuelve el resto de 3.

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

B. Ejemplo que usa columnas de una tabla

En el siguiente ejemplo se devuelve el número de Id. del producto, el precio unitario del producto y el módulo (resto) de la división del precio de cada producto, convertido a un valor entero, por el número de productos del pedido.

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

Ejemplos: Azure Synapse Analytics y Sistema de la plataforma de análisis (PDW)

C: Ejemplo básico

En el ejemplo siguiente se muestran los resultados del % operador al dividir 3 por 2.

SELECT TOP(1) 3 % 2
FROM DimEmployee;

Este es el conjunto de resultados.

1