Módulo (Transact-SQL)
Devuelve el resto de un número dividido entre otro.
Convenciones de sintaxis de Transact-SQL
Sintaxis
dividend % divisor
Argumentos
dividend
Es la 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
Es la expresión numérica entre 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
El operador aritmético de módulo puede utilizarse en la lista de selección de la instrucción SELECT con cualquier combinación de nombres de columnas, constantes numéricas o cualquier expresión válida de las categorías de tipos de datos entero y monetario o del tipo de datos numeric.
Ejemplos
A.Ejemplo sencillo
En el ejemplo siguiente se divide el número 38 por 5. Esto produce 7 como parte entera del resultado y muestra cómo el módulo devuelve un 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.
USE AdventureWorks2012;
GO
SELECT TOP(100)ProductID, UnitPrice, OrderQty,
CAST((UnitPrice) AS int) % OrderQty AS Modulo
FROM Sales.SalesOrderDetail;
GO