% (Módulo) (Transact-SQL)

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Punto de conexión de análisis SQL en Microsoft FabricAlmacenamiento en Microsoft Fabric

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

Convenciones de sintaxis de Transact-SQL

Sintaxis

dividend % divisor

Nota:

Para ver la sintaxis de Transact-SQL para SQL Server 2014 (12.x) y versiones anteriores, consulte Versiones anteriores de la documentación.

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

Este artículo requiere la base de datos de ejemplo AdventureWorks2022 que se puede descargar de 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;

El conjunto de resultados es el siguiente:

1