MSSQL为每个ID插入10个随机行



我有一个拥有IDS的MSSQL表,例如 tbl1

我还有另一个持有约1M数据的表;命名 tbl2

我想做的是,我想将10行从 tbl2 插入新表 tbl3 中的每个ID中的每个ID中的每个ID/strong>。



目前,我正在使用光标通过TBL1循环,但它永远需要桌子大小很大。

关于如何做的任何其他建议?

谢谢。

编辑:TBL1和TBL2没有任何链接,没有ID等。TBL2确实只有纯数据。

您可以使用以下查询在两个无关表之间获取随机连接。当我使用内部加入时,它将限制行数为两个表行计数的最小值(这似乎是您想要的)。然后,您可以运行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

最新更新