Điều này sẽ tạo ra một số "duy nhất" cho mỗi giá trị:
('x'||substr(md5("PQ"."Value"),1,8))::bit(64)::bigint
Nói một cách chính xác, có khả năng xảy ra va chạm, nhưng nó rất xa.
Nếu kết quả là "quá lớn", bạn có thể thử modulus:
<above-calculation> % 10000
Mặc dù va chạm sau đó sẽ là 0,01% cơ hội, bạn nên thử công thức này với tất cả các giá trị đã biết để đảm bảo không có va chạm.