4

私は2つのテーブルを持っています:ItemsUsers

Items含むItemID, and Num_Users
Users含むUserID

それぞれについてItemID、Num_Users列に記載されている値に従ってユーザーの数をランダムに選択する必要があります。

SQLFiddleでサンプルデータセットを作成しました。

4

1 に答える 1

5

一方通行。SQL フィドル

SELECT Items.[ItemID],
       UserID
FROM   Items
       OUTER APPLY (SELECT TOP ([Num_Users]) *
                    FROM   Users
                    ORDER  BY Newid()) A 

ランダム性を高めるためCRYPT_GEN_RANDOM(4)に代わりに使用することもできますが、SQL Server 2008 の最新バージョンではない場合、これにはいくつかの問題があります。Newid()

于 2012-10-14T14:56:27.847 に答える