BITAND |
Et binaire |
|---|---|
| Oracle Database SQL | Oracle 8i (8.1.5) ou supérieure |
Syntaxe
| bitand(nombre1,nombre2) |
Paramètres
| Nom | Description |
|---|---|
| nombre1 | Ce paramètre permet d'indiquer le nombre à traiter. |
| nombre2 | Ce paramètre permet d'indiquer le masque à appliquer à l'autre nombre. |
Description
Cette fonction permet d'effectuer un «Et binaire».
Remarques
- Effectue une opération logique "ET" au niveau binaire entre deux nombres : La fonction BITAND compare les bits de deux entiers et retourne un nouveau nombre dont chaque bit est à 1 uniquement si les bits correspondants des deux opérandes sont aussi à 1. C'est une opération fondamentale en logique binaire.
- Utile pour tester des masques binaires : Cette fonction est très souvent utilisée pour tester des drapeaux (flags) ou des permissions encodées dans un entier. Par exemple, si un droit d'accès est codé par 4, on peut tester BITAND(droits, 4) = 4 pour vérifier s'il est activé.
- Retourne un entier avec la même base que les entrées : La valeur retournée est un entier qui peut être directement utilisé dans d'autres opérations SQL. Le format de retour est cohérent avec les entiers d'entrée, ce qui permet une utilisation fluide dans des expressions complexes.
- La fonction ne modifie pas les opérandes d'origine : BITAND est non destructive : elle calcule un résultat, mais ne modifie pas les valeurs d'entrée. C'est donc une fonction pure, sans effet de bord, parfaitement compatible avec des requêtes de sélection ou des vues.
- Utile pour des contrôles de filtrage dans des clauses WHERE : BITAND est fréquemment utilisée dans les clauses WHERE pour filtrer les enregistrements possédant certaines caractéristiques binaires. Par exemple : WHERE BITAND(etat, 8) = 8 pour sélectionner ceux ayant le bit 4 activé.
- Le résultat est toujours inférieur ou égal au plus petit des deux opérandes : En raison de la nature de l'opération ET, le résultat ne peut jamais avoir plus de bits à 1 que l'un ou l'autre des opérandes. C'est une propriété mathématique utile pour raisonner sur les résultats attendus.
- Fonction déterministe, compatible avec les vues, indexes, déclencheurs : Étant déterministe (même entrée → même sortie), BITAND peut être utilisée dans des index fonctionnels, des vues matérialisées ou des déclencheurs sans provoquer d'effets indésirables ou de comportement non stable.
- Peut être combinée avec BIN_TO_NUM ou MOD pour des traitements binaires avancés : BITAND devient particulièrement puissante lorsqu'elle est combinée à BIN_TO_NUM, POWER, ou encore MOD pour extraire, activer, désactiver ou tester des bits spécifiques dans des entiers codant des informations multiples.
Exemple
Prenons pour base la table «listvalue» avec le contenu suivant :
| id | value | name |
| 1 | 300 | Jean |
| 2 | 6000 | Philippe |
| 3 | 5000 | Samuel |
| 4 | 4000 | Gabriel |
| 5 | 200 | Mathieu |
| 6 | 6000 | Paul |
Si vous voulez retourner les valeurs et binaire 4 :
Et les informations vous seront retournés sous la forme suivante :
| id | value | name |
| 1 | 300 | Jean |
Voir également
Langage de programmation - MySQL - Les opérateurs - «&»
Article - Les géants de l'informatique - Oracle
Dernière mise à jour : Lundi, le 11 mai 2015