1

我知道如何通过一次选择获取插入到表中的行中的随机数。但是我怎样才能做到这一点,以便在 while 循环的迭代中每个选择的结果彼此不同呢?

我正在使用的代码如下所示。我在一组中的每一行中得到的值是不同的,但每次迭代的值集都是相同的。

WHILE some condition is true
  BEGIN    
    DECLARE @GamesRandomlySorted TABLE
    (
      RandomSortId INT,
      GameId INT
    )

    INSERT INTO @GamesRandomlySorted (RandomSortId, GameId)
    SELECT Checksum(NewId()), GameId
    FROM Games

    SELECT * 
    FROM @GamesRandomlySorted
    ORDER BY RandomSortId
  END
4

1 回答 1

0

你为什么不改用兰德?根据微软的说法,如果不指定种子作为参数,每次运行脚本都会得到不同的值。

另请参阅这篇文章- 它展示了如何结合 NewId 和 Rand。

于 2012-10-14T19:24:10.610 回答