Modulo (Transact-SQL)
Gibt den Rest der Division einer Zahl durch eine andere zurück.
Gilt für: SQL Server (SQL Server 2008 bis aktuelle Version), Windows Azure SQL-Datenbank (Ursprüngliche Version bis aktuelle Version). |
Transact-SQL-Syntaxkonventionen
Syntax
dividend % divisor
Argumente
dividend
Der zu dividierende numerische Ausdruck. dividend muss ein gültiger Ausdruck eines Datentyps aus den Datentypkategorien für ganze Zahlen und Währungen oder vom Datentyp numeric sein.divisor
Der numerische Ausdruck, durch den der Dividend geteilt werden soll. divisor muss ein gültiger Ausdruck eines Datentyps aus den Datentypkategorien für ganze Zahlen und Währungen oder vom Datentyp numeric sein.
Ergebnistypen
Die Ergebnistypen werden von den Datentypen der beiden Argumente bestimmt.
Hinweise
Der arithmetische Operator Modulo kann mit jeder Kombination aus Spaltennamen, numerischen Konstanten oder einem gültigen Ausdruck aus den Datentypkategorien für ganze Zahlen oder Währungen oder vom Datentyp numeric in der SELECT-Liste der SELECT-Anweisung verwendet werden.
Beispiele
A.Einfaches Beispiel
Im folgenden Beispiel wird die Zahl 38 durch 5 geteilt. Das Ergebnis 7 ist der ganzzahlige Anteil am Ergebnis, woraus sich ein Rest (Modulo) von 3 ergibt.
SELECT 38 / 5 AS Integer, 38 % 5 AS Remainder ;
B.Beispiel für Spalten in einer Tabelle
Das folgende Beispiel gibt die Product ID, den Einzelpreis des Produkts und den Modulo (Rest) aus der Division des Preises jedes Produkts, konvertiert in eine ganze Zahl, durch die Anzahl der bestellten Produkte zurück.
USE AdventureWorks2012;
GO
SELECT TOP(100)ProductID, UnitPrice, OrderQty,
CAST((UnitPrice) AS int) % OrderQty AS Modulo
FROM Sales.SalesOrderDetail;
GO