有人知道在SQL中将记录插入另一个表时如何混淆数据顺序吗?
示例:我有两个表,Table A
和Table B
,我想插入从Table A
到Table B
的记录,当插入到Table B
时,我希望这些记录如何混合?按照表A中的顺序插入。在SQL中可以做到吗?
Table A:
ID Postcode Total
1 3000 10
2 3000 20
3 3000 5
4 3001 10
5 3001 6
6 3002 6
7 3002 9
8 3002 10
9 3003 85
10 3004 1
插入Table B
后(记录随机混合):
ID Postcode Total
1 3001 10
2 3002 20
3 3000 5
4 3003 85
5 3002 6
6 3001 6
7 3002 9
8 3000 20
9 3000 10
10 3004 1
可以:
INSERT INTO TableB
SELECT *
FROM (SELECT TOP 10 * FROM TableA ORDER BY NEWID()) AS tmp
请确保表B没有聚集键,否则它将无法工作。将TOP 10
更改为TableA中的行数。
编辑:一位评论者指出,原始版本在SQLServer2012及更高版本中不起作用。在这种情况下,你需要一个更严厉的版本(更新)。