SQL語句在ACCESS中TOP的乙個問題(注意)

2022-02-21 08:09:29 字數 762 閱讀 7081

我一直以為access的sql語句與sql server差不多,當時也使用 select top n在access測試過,都是成功的,但昨天突然發現access中有個問題:

如果在查詢top語句的後面使用order by,而且order by欄位中有重複值的話,那麼這個top很可能會失效,

會返回所有記錄

比如:select top 5 from news order by createdate

如果createdate中有重複值,那麼很有可能會顯示出所有的記錄來,此top功能會失效的

但如果createdate中無重複值,那麼top功能還是有效的

因此,在access中使用top功能要注意一下order by的字段是否會有重複值,如果象createdate是"年-月-日 時:分:秒"的,那基本上問題不大的。

但為了保險起見,我們也可以採用「加入主鍵」的方式:

select top 5 from news order by createdate desc,id desc

用主鍵作「不可能重複」的保障就可以防止此問題出現了!!

希望這對某些朋友有用!!

在網上找到乙個相關的解釋:

jet_sql不是 t-sql語句。

jet_sql 會返回重複值,也就是說,乙個表中如果 order by 的字段都是 0 ,一共有100條記錄,即使你用select top 1 來返回記錄,也同樣返回100條記錄,因為 jet db 無從在這100條記錄裡面判斷先後次序,只能返回100條。要解決此問題可以在後面加入乙個主鍵字段。

ACCESS中執行sql語句

不會就看圖 access採用sql語句與sql的區別 access中提供查詢物件,在設計時可以採用設計檢視和sql檢視,非常方便,sql檢視中的sql語句可以在sql server中使用,但是否完全可用呢?答案是否定的,表中總結了 microsoft access 和 microsoft sql s...

在Access中執行SQL

1 基本介紹 microsoft access在很多地方得到廣泛使用,例如小型企業,大公司的部門。喜愛程式設計的開發人員亦利用它來製作處理資料的桌面系統。它也常被用來開發簡單的web應用程式。2 acess使用jet sql引擎,每次只能執行一條sql語句。單擊 create 選擇 query de...

ACCESS中使用SQL語句

以下sql語句在access xp的查詢中測試通過 建表 create table tab1 id counter,name string,age integer,date datetime 技巧 自增字段用 counter 宣告.欄位名為關鍵字的字段用方括號括起來,數字作為欄位名也可行.建立索引 ...