TSql跨循环的随机值集

时间:2012-10-14 18:51:12

标签: tsql random

我知道如何使用单个选择将行中的随机数插入到表中。但是我怎么能这样做,以便在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

1 个答案:

答案 0 :(得分:0)

为什么不使用Rand?根据Microsoft的说法,如果您没有将种子指定为参数,则每次运行脚本时都会得到不同的值。

另见this article - 它显示了如何组合NewId和Rand。