4

我有 2 张桌子:Items& Users

Items包含ItemID, and Num_Users
Users包含UserID

对于每一个ItemID,我需要根据 Num_Users 列中的值随机选择一些用户。

我在SQL Fiddle上创建了一组样本数据。

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 回答