我使用的是 SQL Server 2008,我想选择随机行记录,记录的总数取决于另一个表的列值,如何做到这一点?
我的 SQL 语句是这样的,但是错误..
select top b.number a.name, a.link_id
from A a
left join B b on b.link_id = a.link_id
order by newid()
这是我的表格和预期的结果。
表 A:
name link_id
james 100
albert 100
susan 100
simon 101
tom 101
fion 101
表 B:
link_id number
100 2
101 1
预期结果:
第一次运行时,结果可能是:
name link_id james 100 susan 100 fion 101
第二次结果可能是:
albert 100 susan 100 simon 101
第三次可能是:
james 100 albert 100 fion 101
解释
参考表B,link_id:100,编号:2
这意味着表 A 应该选择 2 个随机记录link_id = 100
并且需要选择 1 个随机记录link_id=101