% (Reste) (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Point de terminaison analytique SQL dans Microsoft FabricEntrepôt dans Microsoft Fabric

Renvoie le reste d'un nombre divisé par un autre.

Conventions de la syntaxe Transact-SQL

Syntaxe

dividend % divisor

Remarque

Pour afficher la syntaxe Transact-SQL pour SQL Server 2014 (12.x) et versions antérieures, consultez la Documentation sur les versions antérieures.

Arguments

dividend

Expression numérique à diviser. dividend doit être une expression valide de l’un des types de données des catégories entier et monétaire, ou bien du type de données numeric.

divisor

Expression numérique par laquelle diviser le dividende. divisor doit être une expression valide de l’un des types de données des catégories entier et monétaire, ou bien du type de données numeric.

Types des résultats

Déterminés par les types de données des deux arguments.

Notes

Vous pouvez utiliser l’opérateur arithmétique modulo dans la liste de sélection de l’instruction SELECT avec n’importe quelle combinaison de noms de colonnes, de constantes numériques ou d’une expression valide des catégories de type de données entier et monétaire, ou du type de données numérique .

Exemples

Cet article requiert l'exemple de bases de données AdventureWorks2022, que vous pouvez télécharger à partir de la page d'accueil des exemples et projets de communautés Microsoft SQL Server.

A. Exemple de base

L’exemple suivant divise le nombre 38 par 5. Le résultat est 7 en tant que partie entière du résultat, et montre comment modulo retourne le reste de 3.

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

B. Exemple utilisant des colonnes dans une table

L'exemple suivant renvoie le numéro d'identification et le prix unitaire du produit, ainsi que le reste (modulo) de la division du prix de chaque produit, converti en valeur entière, par le nombre de produits commandés.

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

Exemples : Azure Synapse Analytics et Analytics Platform System (PDW)

C : Exemple de base

L’exemple suivant montre les résultats de l’opérateur lors de la %3 division par 2.

SELECT TOP(1) 3 % 2
FROM DimEmployee;

Voici le jeu de résultats obtenu.

1