BITOR |
Ou binaire |
| DAX (Data Analysis Expressions) |
Syntaxe
Paramètres
| Nom |
Description |
| number1 |
Ce paramètre permet de spécifier le premier entier sur lequel sera appliqué l'opérateur binaire OR. Il est converti en représentation binaire avant l'opération. |
| number2 |
Ce paramètre permet de spécifier le second entier à utiliser dans l'opération binaire OR. Il est également converti en binaire pour évaluer les bits où au moins un des deux nombres a un bit à 1. |
Description
Cette fonction permet de retourner le résultat d'un opérateur binaire OR entre deux nombres.
Remarques
- BITOR applique une logique binaire OR bit à bit : La fonction compare chaque bit des deux nombres et renvoie 1 si au moins l'un des bits est égal à 1. Ainsi,
même si un seul des deux nombres possède un bit activé à une position donnée, le résultat final aura ce bit activé. Cela permet de fusionner des informations binaires sans
supprimer celles déjà présentes.
- BITOR sert à combiner des drapeaux, permissions ou états : Une utilisation classique est l'encodage de permissions sous forme de bits (exemple : lecture,
écriture, suppression). BITOR permet alors de fusionner plusieurs droits en une seule valeur entière. Par exemple, BITOR(2,4) = 6, combinant deux permissions sans les
écraser. Ce principe est également utile pour entreposer des indicateurs dans un seul champ.
- Les paramètres sont convertis en entiers avant traitement : Même si l'utilisateur fournit des valeurs décimales ou expressions numériques, DAX convertit le
résultat en entier avant de l'évaluer en binaire. Toute partie décimale est donc ignorée. Ce comportement exige une certaine prudence, surtout lorsque les valeurs proviennent
de calculs intermédiaires non arrondis.
- Le résultat ne dépend pas du contexte de filtre : Contrairement à de nombreuses fonctions d'agrégation, BITOR ne tient pas compte du contexte de filtrage, de
ligne ou de mesure. La fonction produit simplement un résultat déterminé par ses deux paramètres. Ainsi, elle convient parfaitement aux colonnes calculées ou aux mesures
constantes, car elle reste 100 % déterministe.
- BITOR permet d'ajouter des bits existants sans les perdre : À la différence de l'opérateur AND, ne conservant qu'un ensemble d'intersections, OR ajoute des
bits sans supprimer ceux déjà présents. Si un nombre possède déjà un bit activé, BITOR ne le désactive jamais. Cela permet de mettre à jour ou enrichir des valeurs binaires
sans altérer les informations auparavant encodées.
- C'est une fonction idéale en combinaison avec BITLSHIFT : BITOR est souvent utilisée avec BITLSHIFT pour générer et combiner des masques. Par exemple,
BITOR(flags, BITLSHIFT(1,3)) active le bit 3 du registre sans toucher aux autres. Cette stratégie permet de stocker des données multidimensionnelles dans un entier compact,
ce qui simplifie les comparaisons et l'indexation.
- Attention à la lisibilité du modèle pour des utilisateurs non techniques : Bien que les opérations binaires soient performantes et compactes, elles deviennent
difficiles à interpréter pour des analystes DAX non familiers avec la logique des bits. Une valeur comme 42 n'indique pas intuitivement quels drapeaux sont activés. Il peut
être pertinent de documenter le système ou d'ajouter des colonnes dérivées explicatives.
- BITOR permet de créer des catégories composites sans jointures : Dans certains modèles, combiner des attributs dans un identifiant binaire peut éviter des
jointures complexes ou des tables de mapping. Par exemple, regrouper des niveaux (1,2,4,8,...) via OR permet d'encoder des catégories multi-choix dans un seul champ. Cette
technique améliore parfois les performances de requêtes en réduisant la cardinalité et la profondeur relationnelle.
Dernière mise à jour : Vendredi, le 30 Mai 2025