Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2647 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [SQL] Opération sur des masques binaires

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[SQL] Opération sur des masques binaires

n°537112
zozoll
Posté le 11-10-2003 à 16:38:54  profilanswer
 

Bonjour,
J'ai une table qui a cette structure :
 

Grp     Mask
 0    0011100
 1    0101010
 2    0011000
 3    1110000
 4    0110101


 
Je voudrais, dans une requete SQL, pouvoir faire une opération binaire de regroupement sur un jeu de résultats, par exemple :
 

Code :
  1. SELECT mon_opération_de_regroupement(Mask) FROM ma_table WHERE Grp > 2


 
Et obtenir ca :
 

Mask
1110101


 
C'est à dire un OU sur toutes les lignes d'un champ de mon jeu de résultats.
 
C'est possible ? Quelqu'un a une piste pour le faire ?

mood
Publicité
Posté le 11-10-2003 à 16:38:54  profilanswer
 

n°537893
vttman2
Je suis Open ...
Posté le 13-10-2003 à 09:42:10  profilanswer
 

Quel est ton SGBD ?

n°537896
MagicBuzz
Posté le 13-10-2003 à 09:50:08  profilanswer
 

Hmmm... Ton mask, il est stocké dans quoi ?
 
C'est une chaîne de caractères ?
C'est un number dans lequel tu met 10 pour faire 2 ?
 
A ce moment, change.
Passe à un number normal, et pour écrire 10, écrit bêtement 2.
 
En effet, le binaire marche très bien, à condition de rester en vrai binaire, c'est à dire que tu dois stocker tes nombres en tant que nombre, faut pas chercher à ce que ce soit joli à regarder.
 
Ici, une ligne (syntaxe Oracle) pour tester un bit dans un nombre :
 

AND mod(trunc(le_masque/power(2,position_du_bit), 0), 2) = 1


 
Si le bit en question est à 1, alors ça retournera true, sinon false.
 
Sinon, pour faire des AND et OR ou NOT booléens, alors voici la syntaxe SQL Server :
 
http://msdn.microsoft.com/library/ [...] r_7fax.asp (pour le AND)
 
Ca donne :
 
AND ((champ1 & champ2) | !champ3)
 
Par exemple. Ca fait le résultat de l'oppération :
 
(champ1 AND champ2) OR NOT champ3

n°540122
mrbebert
Posté le 15-10-2003 à 11:25:52  profilanswer
 

Avec mysql, je pense que les fonctions BIT_OR() et BIT_AND répondent à ton problème :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [SQL] Opération sur des masques binaires

 

Sujets relatifs
ORACLE PL/SQL Déclaration de tigger [RESOLU][SQL server] Problème de requête [--RESOLVED--]
[PHP / SQL] Petite base de donnée - etude de faisablité[debutant][Resolu] Attraper les Erreurs SQL
[RESOLU]Ma commande SQL INSERT INTO ne fonctionne plus !Requête SQL sous SQL Serveur (conversion d'une requête access..) HELP!
PB sur requete SQLUn driver SQL server 7 gratuit ca existe?
[SQL]+[Access] Jointure externe, j'ai du mal là... :(Récupérer fichier excel dans base SQL Server
Plus de sujets relatifs à : [SQL] Opération sur des masques binaires


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR