Da to „unikalny” numer dla każdej wartości:
('x'||substr(md5("PQ"."Value"),1,8))::bit(64)::bigint
Ściśle mówiąc, istnieje ryzyko kolizji, ale jest to bardzo odległe.
Jeśli wynik jest „zbyt duży”, możesz spróbować modulus:
<above-calculation> % 10000
Chociaż kolizje miałyby wtedy szansę 0,01%, powinieneś wypróbować tę formułę ze wszystkimi znanymi wartościami, aby upewnić się, że nie ma kolizji.