Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 在SQL Server中生成随机值_Sql Server_Azure Sql Database_Random Seed - Fatal编程技术网

Sql server 在SQL Server中生成随机值

Sql server 在SQL Server中生成随机值,sql-server,azure-sql-database,random-seed,Sql Server,Azure Sql Database,Random Seed,我试图生成一个随机返回存储过程 尝试了这么多不同的方法,然后找到了一个“干净的方法”来做我需要的 但是。。我正在运行一些模拟,0和1中的结果数远小于其他值。。这个数字有什么不公平的 这是我的代码: DECLARE @val FLOAT SET @val = (SELECT ROUND(RAND(CHECKSUM(NEWID())), 1)) INSERT INTO randomtable (value) SELECT @val GO 1000000 结果如下: 如您所见,在0和1

我试图生成一个随机返回存储过程

尝试了这么多不同的方法,然后找到了一个“干净的方法”来做我需要的

但是。。我正在运行一些模拟,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()

您可以跳过random():


定义“价值”。你想要一个整数,一个像varchar这样的字符串,还是一个小数,或者一个字符或者其他什么?值的范围是多少?如果不是数字,值的长度是多少?我想要一个浮点,范围是图像中指定的。。。0到1,使用0.1,0.2,0.3…
选择ABS(校验和(NewId())%11*.1
这是否回答了您的问题?使用建议副本中的答案,但使用11作为模块,然后乘以。1。结果:
选择ABS(校验和(NewId())%11*.1
定义“值”。你想要一个整数,一个像varchar这样的字符串,还是一个小数,或者一个字符或者其他什么?值的范围是多少?如果不是数字,值的长度是多少?我想要一个浮点,范围是图像中指定的。。。0到1,使用0.1,0.2,0.3…
选择ABS(校验和(NewId())%11*.1
这是否回答了您的问题?使用建议副本中的答案,但使用11作为模块,然后乘以。1。结果:
SELECT ABS(CHECKSUM(NewId())%11*.1
在数学上已经+1了,但是,你真的应该有一个前n。您可能正在创建数百万条不必要的记录。看起来很棒!我用这种方式。非常感谢你!在数学上已经+1了,但是,你真的应该有一个前n。您可能正在创建数百万条不必要的记录。看起来很棒!我用这种方式。非常感谢你!
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;