如何复制表但是相对于其中一列的行随机化?

时间:2014-10-29 23:22:19

标签: sql sql-server

有人知道如何在将记录插入SQL中的另一个表时混淆数据顺序吗?

实施例: 我有2个表格,Table ATable B,我想将Table A的记录插入Table B,我希望在插入{{{}}时将记录混淆{1}}按照表A中的顺序插入。是否可以在SQL中执行此操作?

Table B

插入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

1 个答案:

答案 0 :(得分:0)

是的,你可以:

INSERT INTO TableB
    SELECT *
    FROM (SELECT TOP 10 * FROM TableA ORDER BY NEWID()) AS tmp

确保TableB没有群集密钥,否则它将无法运行。将TOP 10更改为TableA中的行数。

编辑:评论者指出原始版本在SQL Server 2012及更高版本中不起作用。在这种情况下,你需要一个更加沉重的版本(更新)。