2011-07-25 53 views
1

我似乎無法弄清楚如何做到這一點。如何在沒有「ORDER BY」的情況下使用TOP在MS ACCESS中使用「LIMIT」

我想保持記錄按照它們的確切順序,但是將數據分成9個記錄,比如這段代碼會做什麼。我如何在MS ACCESS 2007中完成此操作?

我很抱歉,儘管我是ABAP程序員,但我對MS ACCESS和SQL查詢還是比較陌生。

SELECT * INTO CertTable1 FROM Cert LIMIT 0,49999;

SELECT * INTO CertTable2 FROM Cert LIMIT 50000,49999;

SELECT * INTO CertTable3 FROM Cert LIMIT 100000,49999;

SELECT * INTO CertTable4 FROM Cert LIMIT 150000,49999;

SELECT * INTO CertTable5 FROM Cert LIMIT 200000,49999;

SELECT * INTO CertTable6 FROM Cert LIMIT 250000,49999;

SELECT * INTO CertTable7 FROM Cert LIMIT 300000,49999;

SELECT * INTO CertTable8 FROM Cert LIMIT 350000,49999;

SELECT * INTO CertTable9 FROM Cert LIMIT 400000,49999;

感謝您的幫助。

Waughb

+6

「保存記錄在他們的確切順序」 是什麼順序是什麼?不包括ORDER BY,數據庫引擎檢索記錄的順序不可靠。如果表具有主鍵索引,並且自上次「壓縮」操作以來尚未編輯任何行,則這些行將以主鍵順序返回。但是,在任何其他情況下,這將是一個垃圾拍攝。一張桌子是一個「袋子或數據」。如果您希望以任何特定順序排除這些行,請使用ORDER BY來告訴引擎您的期望順序。否則,你拿你得到的任何東西。 – HansUp

+1

收聽HansUp!沒有訂單。 – Jacob

+1

你爲什麼認爲插入順序很重要? –

回答

-1

例如

選擇頂部99999 *成CertTable9從證書其中id> 400000

+0

ID是否如您所示回答自動編號或什麼? – Brian

+0

這個答案假設存在'0'和'449999'之間'id'的所有整數值。如果某些內容丟失(例如刪除),則會返回比要求的記錄集小的記錄集。此外,它假定記錄按'id'升序排序,而問題表明這不太可能。另外,它應該閱讀「TOP 49999」。此外,它不提供關於如何檢索較早範圍的記錄或任何類型的解釋的建議。 – toonice

相關問題