Share via


% (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

Les exemples de code Transact-SQL de cet article utilisent l’exemple AdventureWorks2022 de base de données, que vous pouvez télécharger à partir de la page d’accueil microsoft SQL Server Samples and Community Projects .

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