access資料庫 top語句失效解決方法

2021-05-22 22:26:40 字數 597 閱讀 5614

有如下表結構:

news(id【文字,主鍵】,title【文字】,info【文字】,publictime【日期】)

使用查詢語句  select   top 1  *  from  news  order  by  [publictime] desc   就不一定管用了,如果news表裡面的publictime欄位沒有重複的話,那麼ok,結果是正確的,而如果裡面有重複的資料,那麼有多少條重複的就會查詢出多少條記錄。

為什麼會這樣呢?

引用「jet sql不是 t-sql語句,

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

好的,知道了問題的所在就好解決了,我們都知道資料庫中主鍵是唯一的,是不可重複的,所以改過來的查詢語句如下:

select   top  1  *  from   news   order    by   [publictime]   desc,[id]   desc

這樣就避免了重複,使得查詢結果達到了真正的 top  1 

Access資料庫語句大全

1.建表 create table tab1 id counter,name string,age integer,date datetime 技巧 自增字段用 counter 宣告.欄位名為關鍵字的字段用方括號括起來,數字作為欄位名也可行.2.建立索引 2.1下面的語句在tab1的date列上建立...

Access資料庫中Group by 語句特別之處

access資料庫中group by 語句特別之處 group by 語句在access資料庫中 與其在sql 2000等資料庫中的應用有區別,但最近發現了乙個特別的之處 group by 語句 會把分組後的字段內容自動縮減至小於255個字元數,如果你的字段內容超過它,那麼就會不提示你的情況下自動載...

Access資料庫top記錄的問題解決

最近碰到乙個問題,就是讀取access資料庫中某個條件下前幾條記錄時候記錄數不會按指定的出來,而是讀取全部符合條件的記錄。如 sql select top 10 where kind 1 order by modifydate desc 上面這種由於排序的字段為非主鍵,在產生重複的記錄時候會使top...