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

代わりにRandを使用してみませんか? Microsoft によると、seed をパラメーターとして指定しないと、スクリプトを実行するたびに異なる値が得られます。

この記事も参照してください- NewId と Rand を組み合わせる方法を示しています。

于 2012-10-14T19:24:10.610 に答える