如何在sql server中生成4位唯一的字母数字随机数

时间:2011-11-25 13:29:31

标签: sql-server random

任何人都可以建议在SQL Server 2008中生成4位数字随机数的逻辑

例如:

02G4: 4digit unique alphanumeric random no. to be generated

1 个答案:

答案 0 :(得分:1)

DECLARE @chars NCHAR(36)
SET @chars = N'0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'

DECLARE @result NCHAR(4)
SET @result = SUBSTRING(@chars, CAST((RAND() * LEN(@chars)) AS INT) + 1, 1)
            + SUBSTRING(@chars, CAST((RAND() * LEN(@chars)) AS INT) + 1, 1)
            + SUBSTRING(@chars, CAST((RAND() * LEN(@chars)) AS INT) + 1, 1)
            + SUBSTRING(@chars, CAST((RAND() * LEN(@chars)) AS INT) + 1, 1)

SELECT @result

显然,这只会生成4个随机字母数字字符。如果您需要确保唯一性,那么最好的方法是使用具有UNIQUE约束的表格,并预先使用您的值预先填充它,或者随时添加它们。