我有两张桌子:Items
& Users
。
Items
包含ItemID, and Num_Users
Users
包含UserID
对于每个ItemID
,我需要根据Num_Users列中指定的值随机选择一些用户。
我在SQL Fiddle上创建了一组示例数据。
答案 0 :(得分:5)
一种方式。 SQL Fiddle
SELECT Items.[ItemID],
UserID
FROM Items
OUTER APPLY (SELECT TOP ([Num_Users]) *
FROM Users
ORDER BY Newid()) A
您还可以使用CRYPT_GEN_RANDOM(4)
代替Newid()
获得更高程度的随机性,但在非最新版本的SQL Server 2008上有some issues with this。