Transformer en chaîne de bits puis en nombre entier.
An example: '1110'::bit(4)::integer
-> 14
Bien que vous aviez des exemples de longueur ou moins, et ont été après bigint, utilisez donc la place bit(64)
et pad l'entrée avec des zéros en utilisant la fonction lpad
.
lpad('0100011101111000',64,'0')::bit(64)::bigint
Voici un exemple complet ...
create temp table examples (val varchar(64));
insert into examples values('0100011101111000');
insert into examples values('000001');
insert into examples values('000010');
insert into examples values('000011');
select val,lpad(val,64,'0')::bit(64)::bigint as result from examples;
Le résultat de la sélection est:
val | result
------------------+--------
0100011101111000 | 18296
000001 | 1
000010 | 2
000011 | 3
(4 rows)
Impressionnant! Exactement ce dont j'avais besoin. Merci d'avoir partagé votre sagesse. –