我有一个包含ID的MSSQL表,比如 TBL1 。
我还有另一个表可容纳大约1M的数据;名为 TBL2
我想要做的是,我想将 TBL2 中的10个随机行插入到 TBL1 <中的每个ID的新表 TBL3 中/强>点。
目前我使用CURSOR循环遍历TBL1但是它需要永远,特别是当表格大小非常大时。
关于如何做的任何其他建议?
感谢。
编辑: TBL1和TBL2没有任何链接,没有ID等。 TBL2只有纯数据。
答案 0 :(得分:0)
您可以使用以下查询获取两个不相关的表之间的随机连接。由于我使用内连接,它会将行数限制为两个表中的最小值。行计数(这似乎是你想要的)。然后你可以运行10次(我使用GO 10
)。
insert into TBL3
select t1.col1, t2.col2
from
(select row_number() over (order by NEWID()) rownum, col1 from TBL1) t1
inner join
(select row_number() over (order by NEWID()) rownum, col2 from TBL2) t2
on t1.rownum = t2.rownum
go 10