
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