MOD | Modulo |
|---|---|
| Oracle Database SQL | Oracle version 6 ou supérieur |
Syntaxe
| Mod(Nombre1,Nombre2) |
Paramètres
| Nom | Description |
|---|---|
| Nombre1 | Ce paramètre permet d'indiquer l'expression contenant le nombre à traiter |
| Nombre2 | Ce paramètre permet d'indiquer le diviseur |
Description
Cette fonction retourne la partie restant d'un nombre (le modulo).
Remarques
- La fonction MOD calcule le reste de la division entière entre deux nombres, appelée aussi opération modulo. Elle est souvent utilisée dans des calculs périodiques ou pour déterminer la parité (pair/impair) d'un nombre.
- MOD est disponible depuis les toutes premières versions d'Oracle, ce qui en fait une fonction arithmétique fondamentale et largement utilisée dans le développement SQL.
- Le premier paramètre Nombre1 représente le dividende, c'est-à-dire le nombre à diviser, tandis que le second Nombre2 est le diviseur. La fonction retourne le reste de la division entière de Nombre1 par Nombre2.
- Si Nombre2 est égal à zéro, Oracle génère une erreur de division par zéro (ORA-01476), car la division par zéro est mathématiquement indéfinie.
- La fonction MOD peut être utilisée pour filtrer ou regrouper des données selon des critères périodiques, par exemple sélectionner tous les enregistrements dont l'identifiant est pair (MOD(id, 2) = 0).
- MOD est particulièrement utile dans la génération de séquences cycliques ou dans des algorithmes qui requièrent une périodicité, comme la répartition de tâches ou le partitionnement en rondes.
- Le résultat de MOD conserve le signe du dividende (Nombre1), ce qui peut influencer les calculs dans certains cas et nécessite d'être pris en compte dans les algorithmes.
- MOD fonctionne avec des nombres entiers comme avec des nombres décimaux, mais le résultat correspond toujours au reste de la division entière, arrondi selon les règles d'Oracle.
- Dans certains cas, MOD est utilisé pour créer des conditions d'indexation ou pour équilibrer la charge entre serveurs, en répartissant les enregistrements selon le reste modulo.
- La fonction MOD peut être combinée avec d'autres fonctions mathématiques pour créer des expressions complexes, par exemple pour détecter des motifs répétitifs ou gérer des intervalles.
- L'usage de MOD est courant dans les requêtes temporelles, par exemple pour extraire des enregistrements tous les n jours, ce qui facilite les analyses par cycles ou saisons.
- En programmation PL/SQL, MOD est aussi utilisé dans les boucles et les conditions pour gérer la logique répétitive et les changements périodiques, rendant la fonction très polyvalente dans la gestion des données.
Exemple
Voici un exemple montrant une utilisation plus classique de cette fonction :
- SELECT 'mod(-81,9)= ' As Text, mod(-81,9) AS Result FROM DUAL UNION
- SELECT 'mod(15,3) = ' As Text,mod(15,3) As Result FROM DUAL UNION
- SELECT 'mod(16,3) = ' As Text, mod(16,3) AS Result FROM DUAL UNION
- SELECT 'mod(16.9,3) = ' As Text,mod(16.9,3) As Result FROM DUAL UNION
- SELECT 'mod(16.8,3) = ' As Text,mod(16.8,3) As Result FROM DUAL UNION
- SELECT 'mod(16.7,3) = ' As Text,mod(16.7,3) As Result FROM DUAL UNION
- SELECT 'mod(16.6,3) = ' As Text,mod(16.6,3) As Result FROM DUAL UNION
- SELECT 'mod(16.5,3) = ' As Text,mod(16.5,3) As Result FROM DUAL UNION
- SELECT 'mod(16.4,3) = ' As Text,mod(16.4,3) As Result FROM DUAL UNION
- SELECT 'mod(16.3,3) = ' As Text,mod(16.3,3) As Result FROM DUAL UNION
- SELECT 'mod(16.2,3) = ' As Text,mod(16.2,3) As Result FROM DUAL UNION
- SELECT 'mod(16.1,3) = ' As Text,mod(16.1,3) As Result FROM DUAL UNION
- SELECT 'mod(17,3) = ' As Text,mod(17,3) As Result FROM DUAL UNION
- SELECT 'mod(18,3) = ' As Text,mod(18,3) As Result FROM DUAL UNION
- SELECT 'mod(19,3) = ' As Text,mod(19,3) As Result FROM DUAL UNION
- SELECT 'mod(0,1) = ' As Text,mod(0,1) As Result FROM DUAL
on obtiendra le résultat suivant :
| Text | Result |
| mod(-81,9)= | 0.0 |
| mod(15,3) = | 0.0 |
| mod(16,3) = | 1.0 |
| mod(16.9,3) = | 1.9 |
| mod(16.8,3) = | 1.8 |
| mod(16.7,3) = | 1.7 |
| mod(16.6,3) = | 1.6 |
| mod(16.5,3) = | 1.5 |
| mod(16.4,3) = | 1.4 |
| mod(16.3,3) = | 1.3 |
| mod(16.2,3) = | 1.2 |
| mod(16.1,3) = | 1.1 |
| mod(17,3) = | 2.0 |
| mod(18,3) = | 0.0 |
| mod(19,3) = | 1.0 |
| mod(0,1) = | 0.0 |
Voir également
Article - Les géants de l'informatique - Oracle
Dernière mise à jour : Lundi, le 11 mai 2015