Isso produzirá um número "único" para cada valor:
('x'||substr(md5("PQ"."Value"),1,8))::bit(64)::bigint
A rigor, há uma chance de colisão, mas é muito remota.
Se o resultado for "muito grande", você pode tentar o módulo:
<above-calculation> % 10000
Embora as colisões tenham uma chance de 0,01%, você deve tentar esta fórmula em todos os valores conhecidos para garantir que não haja colisões.