回答
我會用 「emptyTable」 和 「populatedTable」,因爲問題是混亂
重要沒有ORDER BY的TOP
會給出500個任意行。從未有一個隱含的或自然順序表
INSERT INTO emptyTable
SELECT TOP 500 *
FROM populatedTable
ORDER BY What -- need this to define TOP 500
缺乏此列列表通常被定義爲壞的做法,但只能當
- 表是相同
- 沒有在emptyTable IDENTITY列
編輯:
ORDER BY是要求以保證行順序。看到這些。這也是在ANSI標準
+1 ORDER BY的優點 - 沒有ORDER BY的TOP(x)'只給出隨機行。 – 2011-12-29 13:39:14
據我所知,如果沒有連接,查詢優化器將按照物理順序(即聚集索引的順序,如果存在的話) – 2011-12-29 13:45:04
@RowlandShaw:有這樣的巧合,但不要依賴它 – gbn 2011-12-29 13:46:07
事情是這樣的:
INSERT INTO t1
SELECT TOP 500 * FROM t2
您選擇的500強,並插入。
其實,@marc_s,他說t1是空的,所以我假設他希望他們去那裏。另外:是的,我忘了'*' – 2011-12-29 13:37:17
@marc_s不太確定,因爲他們還說t1沒有行(所以沒有第一個500) – 2011-12-29 13:37:33
insert t2(fieldslist)
select top 500 fieldslist from t1
如果兩個表具有相同的架構,它是那樣簡單:
INSERT INTO t1
SELECT TOP 500 *
FROM t2
@marc_s據我所知,沒有連接,查詢優化器將與物理順序一致(即聚集索引的順序,如果存在的話) – 2011-12-29 13:43:51
否 - 那個*可能是現在和現在的情況 - 但是沒有ORDER BY,**沒有**保證關於什麼順序將被使用 - 它不是確定性的 - 在SQL Server中沒有自然的ORDER ** – 2011-12-29 13:50:06
- 1. 從table1中選擇數據並將其複製到table2中
- 2. 如何從table1向table2插入數據?
- 3. SQL插入到ColX表1從表2中選擇ColY其中Table1.colA = Table2.ColB
- 4. 從2個表中選擇。 Query = table1 OR table1 + table2
- 5. 如何從TABLE2中插入TABLE1(field1,field2'value','myval','currentdate')select(field1,field2)
- 6. 從table1連接table2中選擇id,table1.column1 + table2.column2作爲總數。如果table2.column2沒有價值呢?
- 7. 如何更新table1值(從表2中選擇)where table1.email = table2.email
- 8. MySQL:如果table1中的行存在,則在table2上插入行
- 9. php從table1中選擇項目查詢,複製到table2
- 10. 用Identity_Insert插入數據是ON並插入到Table1中從表2中選擇*
- 11. 如何將Sqoop導入表table1,table2,table3?
- 12. 如何將DynamoDB table1每天寫入table2?
- 13. 從table1中選擇*,其中JID不在table2中,而table2.uid也不是11111
- 14. 如何加入table2如果table1中的table2 id不爲null
- 15. 如何從table1中選擇table2中具有table3選項的記錄?
- 16. MySQL在插入table1時自動向table2插入一行
- 17. SQL查詢,從table1中選擇order by table2 rows
- 18. 從table1中選擇3個值並使用table2中table1中的一個值來獲取結果?
- 19. 從table1中選擇哪裏類似的行不會出現在table2中?
- 20. 如何從table1中選擇記錄,其中table1.id存在於table2的id列中?
- 21. 如何從table1中檢索列值並將其保存在table2的列中?
- 22. 將Table1與table2相關聯,並在table1上顯示來自table2的字段
- 23. 從db1.table1插入新行到db2.table1中
- 24. 如何將記錄從Server1 db1 table1複製到Server2 db2 table2?
- 25. 如何使用INSERT INTO SELECT將lookup_id從Table1複製到Table2
- 26. 插入表中從table2中選擇變量相當於mongodb
- 27. 如何填充table1到table2的日期?
- 28. 如何將記錄從db1中的table1複製到db2中的table2
- 29. 如何在TABLE2中定義某些靜態行時,將table1中的多個列複製到table2中?
- 30. 如何從2列表中選擇隨機行並將它們合併
爲什麼你想從一個完全空表中選擇TOP 500行???你說* t1是完全空白的*然後*我如何從t1中選擇500行* * - 根本沒有任何意義...... – 2011-12-29 13:37:44
感謝您發現它;我已經修復了問題文本 – pencilCake 2011-12-29 13:41:43
另外:正如gbn正確地指出:如果沒有'ORDER BY',你的'TOP 500'會給你一個任意的500行......所以你想要'TOP 500' **標準?? – 2011-12-29 13:42:09