将字母数字值转换为SQL中的唯一数值

时间:2016-06-29 19:24:04

标签: sql sql-server

我有一个表格列,其值如下所示

V5H 3K3
V6L 4L4
V4E 5L2
V5H 3K3

我需要针对每个人获得一个唯一的数字,因此它看起来像

V5H 3K3    1111
V6L 4L4    2222
V4E 5L2    3333
V5H 3K3    1111

SQL Server中是否有一个可用于执行此操作的简单函数?

1 个答案:

答案 0 :(得分:6)

Select cast(HashBytes('MD5', 'V5H 3K3') as int)

返回 -381163718

例如

Declare @Table table (SomeField varchar(25))
Insert into @Table values
('V5H 3K3'),
('V6L 4L4'),
('V4E 5L2'),
('V5H 3K3')

Select *,AsAnInt = abs(cast(HashBytes('MD5', SomeField) as int))
 From  @Table

返回

SomeField   AsAnInt
V5H 3K3     381163718
V6L 4L4     245350301
V4E 5L2     1706996605
V5H 3K3     381163718