% (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 Warehouse en Microsoft Fabric Base de datos SQL de 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 puede 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