我必须在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位数?
感谢。这非常迫切。
答案 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)