Dela via


% (Modulus) (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalysplattformssystem (PDW)SQL-analysslutpunkt i Microsoft FabricLager i Microsoft FabricSQL-databas i Förhandsversion av Microsoft Fabric

Returnerar resten av ett tal dividerat med ett annat.

Transact-SQL syntaxkonventioner

Syntax

dividend % divisor

Arguments

dividend

Det numeriska uttryck som ska delas. dividend måste vara ett giltigt uttryck för någon av datatyperna i heltals- och penningdatatypskategorierna eller den numeriska datatypen.

divisor

Det numeriska uttryck som utdelningen ska delas med. divisor måste vara ett giltigt uttryck för någon av datatyperna i heltals- och penningdatatypskategorierna eller den numeriska datatypen.

Result types

Bestäms av datatyperna för de två argumenten.

Remarks

Du kan använda modulo-aritmetikoperatorn i urvalslistan för -instruktionen SELECT med valfri kombination av kolumnnamn, numeriska konstanter eller ett giltigt uttryck för heltals- och penningdatatypens kategorier eller den numeriska datatypen.

Examples

Kodexemplen i den här artikeln använder AdventureWorks2022- eller AdventureWorksDW2022-exempeldatabasen, som du kan ladda ned från startsidan Microsoft SQL Server Samples och Community Projects.

A. Basic example

I följande exempel delas talet 385med . Resultatet är 7 som heltalsdelen av resultatet och visar hur modulo returnerar resten av 3.

SELECT
    38 / 5 AS [Integer],
    38 % 5 AS [Remainder];

B. Exempel med kolumner i en tabell

I följande exempel returneras produkt-ID-numret, enhetspriset för produkten och modulo (resten) för att dividera priset för varje produkt, konverterat till ett heltalsvärde, till antalet beställda produkter.

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

Exempel: Azure Synapse Analytics and Analytics Platform System (PDW)

C: Grundläggande exempel

I följande exempel visas resultatet för operatorn % när du dividerar med 32.

SELECT TOP(1) 3 % 2
FROM DimEmployee;

Här är resultatet.

1