在 SQL 服务器中生成随机值

Generating random values in SQL Server

我试图生成一个随机的-return存储过程。

尝试了很多不同的方法,然后找到了一个"Clean way"来做我需要的..

但是..我是运行一些模拟,0和1的结果数量比其他值少很多..这个数字有什么不公平的...

这是我的代码:

DECLARE @val FLOAT

SET @val = (SELECT ROUND(RAND(CHECKSUM(NEWID())), 1))

INSERT INTO randomtable (value)
    SELECT @val
GO 1000000

这些是结果:

如你所见,0和1中只有8800个结果,其他的有17000多个结果..

我怎样才能可靠地创建一个系统来生成随机值?

你可以跳过 random():

select randomcol, count(*) as counter
from
(
select cast(ABS(CHECKSUM(NEWID())) % 11 /10.0 as decimal(2, 1)) as randomcol
from master.dbo.spt_values as a
cross join master.dbo.spt_values as b
) as a
group by randomcol
order by randomcol;