我一直以為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 宣告.欄位名為關鍵字的字段用方括號括起來,數字作為欄位名也可行.建立索引 ...