Freigeben über


% (Modulo) (Transact-SQL)

Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) SQL-Analyseendpunkt in Microsoft Fabric Warehouse in Microsoft Fabric SQL-Datenbank in Microsoft Fabric

Gibt den Rest der Division einer Zahl durch eine andere zurück.

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 Ganzzahlen und Währungen oder vom Datentyp numeric sein.

divisor

Der numerische Ausdruck, durch den die Dividende dividiert werden soll. divisor muss ein gültiger Ausdruck eines Datentyps aus den Datentypkategorien für Ganzzahlen und Währungen oder vom Datentyp numeric sein.

Ergebnistypen

Die Ergebnistypen werden von den Datentypen der beiden Argumente bestimmt.

Hinweise

Sie können den modulo arithmetischen Operator in der Auswahlliste der SELECT Anweisung mit einer beliebigen Kombination aus Spaltennamen, numerischen Konstanten oder einem gültigen Ausdruck der Kategorien für ganzzahlige und monetäre Datentypen oder den numerischen Datentyp verwenden.

Beispiele

Die Transact-SQL-Codebeispiele in diesem Artikel verwenden die AdventureWorks2022- oder AdventureWorksDW2022-Beispieldatenbank, die Sie von der Homepage Microsoft SQL Server Samples and Community Projects herunterladen können.

A. Einfaches Beispiel

Im folgenden Beispiel wird die Zahl 38 durch dividiert.5 Das Ergebnis entspricht 7 dem ganzzahligen Teil des Ergebnisses und veranschaulicht, wie modulo den Rest des 3Ergebnisses zurückgibt.

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.

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

Beispiele: Azure Synapse Analytics und Analytics-Plattformsystem (PDW)

C: Einfaches Beispiel

Das folgende Beispiel zeigt Ergebnisse für den % Operator beim Dividieren 3 durch 2.

SELECT TOP(1) 3 % 2
FROM DimEmployee;

Hier sehen Sie das Ergebnis.

1