Sql函数将字符字段转换为数字字段

时间:2013-04-30 02:23:28

标签: sql sql-server-2008

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

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

我的第一个问题是我是否忽略了sql内置的任何内容,而且我希望听到有关实现此类功能的最简单方法的建议。

3 个答案:

答案 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