Detta ger ett "unikt" nummer för varje värde:
('x'||substr(md5("PQ"."Value"),1,8))::bit(64)::bigint
Strängt taget finns det en risk för en kollision, men det är väldigt avlägset.
Om resultatet är "för stort", kan du prova modulus:
<above-calculation> % 10000
Även om kollisioner då skulle ha en chans på 0,01 %, bör du prova den här formeln mot alla kända värden för att säkerställa att det inte finns några kollisioner.