% (Modulo) (Transact-SQL)

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

Icône Lien de rubriqueConventions de la syntaxe de Transact-SQL

Syntaxe

dividend % divisor

Arguments

  • dividend
    Expression numérique à diviser. dividend doit être une expression valide de l'un des types des catégories de données integer (entier) et monétaires, ou du type de données numeric.

  • divisor
    Expression numérique par laquelle le dividende doit être divisé. divisor doit être une expression valide de l'un des types des catégories de données integer (entier) et monétaires, ou du type de données numeric.

Types des résultats

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

Notes

L'opérateur arithmétique modulo peut être utilisé dans la liste de sélection de l'instruction SELECT, avec toute combinaison de noms de colonnes, de constantes numériques ou de toute expression valide de l'un des types des catégories de données entières et monétaires ou du type numeric.

Exemple

A. Exemple simple

L'exemple suivant divise le nombre 38 par 5. Cette opération produit le nombre 7 comme partie entière du résultat, et dé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.

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