使用SQL Server,我需要得到随机数,但每次运行代码时都需要相同的结果。通常情况下,这将意味着使用种子,但据我所知,SQL的RAND函数使用公式:有没有办法从SQL中的种子获得实际的随机分布?
RAND(@Seed) = 0.00001863297* @Seed + 0.71357336
与整数关截断这是,你知道的,不是特别乱。 Here's a chart I made of it because I couldn't quite believe it myself。
DECLARE @i int = 1;
CREATE TABLE #Test (
seed int
, ran float);
WHILE @i < 10000
BEGIN
INSERT INTO #Test
(seed
, ran)
SELECT @i*23
, Rand(@i*23)
SET @i = @i + 1;
END;
反正是有办法来生成关在SQL种子的真正的随机数:
这与代码做?
每次调用相同种子 – Evan
时,都不会得到相同的结果您需要相同的结果吗? –
“种子”一词应该对你有所帮助。从技术上讲,电脑时钟也是种子,但现在让我们忽略它。 ;) –