1

我正在将数据从一个系统导入到另一个系统。前者键关闭一个字母数字字段,而后者需要一个数字整数字段。我想找到或编写一个函数,我可以将字母数字值提供给它,并让它返回一个对传入的值来说是唯一的数字。

我的第一个想法是做一个散列,但当然任何内置散列的结果都将包含字母,而且从技术上讲,散列可能不是唯一的(但不太可能)。

我的第一个问题是 sql 中是否有任何我忽略的内置内容,除此之外,我想听听有关实现此类功能的最简单方法的建议。

4

3 回答 3

1

这是一个函数,它可能会从基数 10(整数)转换为基数 36(字母数字)并再次转换:

https://www.simple-talk.com/sql/t-sql-programming/numeral-systems-and-numbers-conversion-in-sql/

您可能会发现结果数字太大而无法保存在整数中。

于 2013-04-30T02:51:41.263 回答
0

您可以连接字符串中每个字符的 ascii 值并将结果转换为 bigint。

于 2013-04-30T02:35:26.253 回答
-1

如果知道原始数据是整数,则可以使用 cast:

SELECT CAST(varcharcol AS INT) FROM Table
于 2013-04-30T02:34:55.843 回答