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