我正在将数据从一个系统导入到另一个系统。前者键关闭一个字母数字字段,而后者需要一个数字整数字段。我想找到或编写一个函数,我可以将字母数字值提供给它,并让它返回一个对传入的值来说是唯一的数字。
我的第一个想法是做一个散列,但当然任何内置散列的结果都将包含字母,而且从技术上讲,散列可能不是唯一的(但不太可能)。
我的第一个问题是 sql 中是否有任何我忽略的内置内容,除此之外,我想听听有关实现此类功能的最简单方法的建议。
我正在将数据从一个系统导入到另一个系统。前者键关闭一个字母数字字段,而后者需要一个数字整数字段。我想找到或编写一个函数,我可以将字母数字值提供给它,并让它返回一个对传入的值来说是唯一的数字。
我的第一个想法是做一个散列,但当然任何内置散列的结果都将包含字母,而且从技术上讲,散列可能不是唯一的(但不太可能)。
我的第一个问题是 sql 中是否有任何我忽略的内置内容,除此之外,我想听听有关实现此类功能的最简单方法的建议。
这是一个函数,它可能会从基数 10(整数)转换为基数 36(字母数字)并再次转换:
https://www.simple-talk.com/sql/t-sql-programming/numeral-systems-and-numbers-conversion-in-sql/
您可能会发现结果数字太大而无法保存在整数中。
您可以连接字符串中每个字符的 ascii 值并将结果转换为 bigint。
如果知道原始数据是整数,则可以使用 cast:
SELECT CAST(varcharcol AS INT) FROM Table