2014-10-29 38 views
1

有誰知道如何混合數據順序,而將記錄插入SQL中的另一個表?如何複製一個表,但是將這些行隨機排列在一個列上?

例子: 我有2個表,Table ATable B,我想記錄插入來自Table ATable 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 

INSERT INTO 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 
+0

除非您試圖隨機生成身份或提高批量加載性能,否則將數據插入表中的順序是無關緊要的。當您選擇退出此表格時,記錄出來的訂單僅在'ORDER BY'上100%可靠。不要指望按照插入表中的順序選擇數據。 – 2014-10-29 23:49:37

回答

0

是的,你可以:

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

確保表B沒有聚集鍵,否則它贏得沒有工作。將TOP 10更改爲TableA中的行數。

編輯:一位評論者指出,原始版本將無法在SQL Server 2012及更高版本中使用。在這種情況下,你需要更重的版本(更新)。

+0

這實際上並不是他們想要做的。格式化應該更清晰。這些行需要關於id列進行隨機化。 – 2014-10-29 23:41:06

相關問題