【发布时间】:2017-05-16 18:32:35
【问题描述】:
我有两个单列表,A 和 B。我想创建一个新表,其中 A 的每个元素都与 B 中的 3 个随机元素的样本配对,即:
表A:
A1
A2
A3
表 B:
B1
B2
B3
...
B100
结果表C:
A1 B51
A1 B63
A1 B17
A2 B62
A2 B13
A2 B17
A3 B1
A3 B69
A3 B78
对于每个 A,B 的值是随机的。重复/重叠对于不同的 As 是可以的,但对于给定的 A 则不行(即每个 A 必须与 B 的 3 个唯一元素配对,但不同的 As 可以具有相同的元素B;也就是说,不同的 As 极不可能有相同的 B 集)。有没有办法在 A 的元素上不使用 for 循环来做到这一点?
【问题讨论】:
-
您使用的是哪个 DBMS?
-
也许是
FROM A cross apply (Select top 10 FROM B order by random()),但这取决于dbms -
我们正在使用 SQL Server
-
是的,2008 年。需要为每个项目设置不同的 10 条记录
-
B 的预期输出样本将有助于澄清问题。
标签: sql sql-server