Partager via


% (Reste) (Transact-SQL)

S’applique à : SQL Server Base de données Azure SQL Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) Point de terminaison d'analyse SQL dans Microsoft Fabric Entrepôt dans Microsoft Fabric Base de données SQL dans Microsoft Fabric

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

Conventions de la syntaxe Transact-SQL

Syntaxe

dividend % divisor

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 sont fondés sur l’échantillon de base de données AdventureWorks2022 ou AdventureWorksDW2022 fourni, que vous pouvez télécharger à partir de la page d’accueil Échantillons et projets communautaires Microsoft SQL Server.

R : 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.

1