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

Pan*_*mar 14 random sql-server-2008

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

convert(numeric(12,0),rand() * 999999999999) 
Run Code Online (Sandbox Code Playgroud)

RIGHT(CAST(CAST(NEWID() AS VARBINARY(36)) AS BIGINT), 12)
Run Code Online (Sandbox Code Playgroud)

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

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

谢谢.这非常紧迫.

小智 35

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

convert(numeric(12,0),rand() * 899999999999) + 100000000000
Run Code Online (Sandbox Code Playgroud)


Mik*_*sen 5

如何将一个随机数加到100000000000