Comparaisons Bit a Bit avec PostgreSql

comparaison bits à bits

Nous disposons d'une table t_test
Cette table contient un champ droit (int4)

Chaque bit du champ "droit" doit pouvoir être testé

 Si par exemple on souhaite vérifier que le bit n°1 du champ droit est à 1 il suffira de faire

 droit&(1)

Cela réalise un "et" logique entre les deux chiffres et donne une valeur >0 seulement si le bit recherché vaut 1

Select id, droit, droit::bit(30) as droit_bit  from t_test
where droit is not null
and ((droit&(8))::integer)>0
Par Christophe HIRON
26 juillet 2012