在sql server 2008 R2中生成x位随机数

时间:2011-10-10 06:01:43

标签: sql-server-2008 random

我必须在sql server 2008 R2中生成12位数字(bigint)。我使用了我在互联网上找到的这些方法

convert(numeric(12,0),rand() * 999999999999) 

RIGHT(CAST(CAST(NEWID() AS VARBINARY(36)) AS BIGINT), 12)

虽然这些确实有效但问题是有时生成的数字有前导零并且被剥离导致10或11位数字。

是否有一致的方法在sql中生成x位数?

感谢。这非常迫切。

3 个答案:

答案 0 :(得分:32)

一种解决方案是确保它在12位数范围内。

convert(numeric(12,0),rand() * 899999999999) + 100000000000

答案 1 :(得分:4)

如何添加随机数到100000000000

答案 2 :(得分:1)

SQL Server中生成简单的一行随机数

Select LEFT(SUBSTRING (RTRIM(RAND()) + SUBSTRING(RTRIM(RAND()),3,11), 3,11),6) as RandomNumber

以上查询将为您提供6位数的随机数。如果您想要更多或更少的数字,那么只需更改行尾的提及长度即可。防爆。 (6至4或8同样最大限制为11)