OVH Cloud OVH Cloud

masque binaire

2 réponses
Avatar
Bruno
Bonjour,
Je souhaite crééer dans ma table un champ Semaine contenant 52 bits, puis
faire un requète du type :
select * From MaTable where 'Semaine & Bit30' = 1

Je n'ai pas trouvé dans SQL la possibilité de créer une colonne de plusieurs
bits ; j'ai donc tenté d'utiliser le type binary(7) - 7 car 7x8bits = 56
bits ; il m'en faut 52

Mais je n'arriva pas à utiliser la fonction & sur ce type de colonne

Merci de votre aide

Bruno

2 réponses

Avatar
GLB
Si tu utilise un bigint tu à 63 bits possible sur 8 octets

a toi de de positionner le bit qui est
2 elevé à la puisance (numéro semaine -1 )
POWER(2, NOsemaine - 1)

A+

Gilles

"Bruno" a écrit dans le message de news:
45a1ecdd$0$321$
Bonjour,
Je souhaite crééer dans ma table un champ Semaine contenant 52 bits, puis
faire un requète du type :
select * From MaTable where 'Semaine & Bit30' = 1

Je n'ai pas trouvé dans SQL la possibilité de créer une colonne de
plusieurs bits ; j'ai donc tenté d'utiliser le type binary(7) - 7 car
7x8bits = 56 bits ; il m'en faut 52

Mais je n'arriva pas à utiliser la fonction & sur ce type de colonne

Merci de votre aide

Bruno




Avatar
Fred BROUARD
Bonjour,

Lisez l'article que j'ai écrit à ce sujet :
http://sqlpro.developpez.com/cours/stockageopt/

A +

Bruno a écrit :
Bonjour,
Je souhaite crééer dans ma table un champ Semaine contenant 52 bits, puis
faire un requète du type :
select * From MaTable where 'Semaine & Bit30' = 1

Je n'ai pas trouvé dans SQL la possibilité de créer une colonne de plusieurs
bits ; j'ai donc tenté d'utiliser le type binary(7) - 7 car 7x8bits = 56
bits ; il m'en faut 52

Mais je n'arriva pas à utiliser la fonction & sur ce type de colonne

Merci de votre aide

Bruno






--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************