我有一张包含 ID 和区域设置的表格。同一 ID 可以在不同的语言环境中多次列出:
ID Locale
123456 EN_US
234567 EN_US
234567 EN_CA
345678 EN_US
我需要为每条记录创建一个数字 ID(整数)形式的唯一标识符,同时保持对原始组件进行逆向工程的能力。
我在想移位可能会起作用:为每个语言环境分配一个数值,但我不太确定如何实现。有没有人遇到过这个挑战?另外,我有 75 个语言环境,所以我不确定这是否会成为移位问题。
最后,我将 SQL Server 与链接服务器连接到 Teradata(这是我的数据源)。我认为 Teradata 不支持开箱即用的按位,所以我假设我必须在 MSSQL 中执行此操作。
谢谢。
最佳答案
您可以创建复合数字键,将 75 个唯一值映射到数字键的最后 2 位数字。您可以使用简单的模数 100 算法或只是一个子字符串来解析组件。如果您将超过 100 个值,请改用 3 位数字。总共 9 位数字将适合 int 一个 int,10-18 将适合一个 bigint。
关于sql-server - 从两个值创建唯一编号;位移位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18724456/