office交流網(wǎng)--QQ交流群號及微信交流群

Access培訓(xùn)群:792054000         Excel免費交流群群:686050929          Outlook交流群:221378704    

Word交流群:218156588             PPT交流群:324131555

微信交流群(請用微信掃碼)

        

解決Access數(shù)據(jù)庫的Sql語句中 Top n 語句獲取多條記錄

2019-06-22 16:06:00
tmtony8
原創(chuàng)
6275

SQL語句在所有數(shù)據(jù)庫基本是通用的,只是有部分函數(shù)命名不一致或者不存在。,

如使用ACCESS的SQL 語句 與SQL Server也大致一樣,但由于Access使用的是JET SQL 而不是 真正的T-SQL語句。有時會出現(xiàn)一些bug。

如jet sql 會返回重復(fù)值,如果在查詢TOP 語句 的后面使用Order by,而且Order by字段中有重復(fù)值的話,那么這個TOP很可能會失效, 會返回所有記錄

假如共有30條記錄,即使你用SELECT TOP 1 來返回記錄,也同樣返回30條記錄,因為 JET DB 無從在這30條記錄里面判斷先后次序,只能返回30條。要解決此問題可以在后面加入一個主鍵字段


 
例如:
Select top 5 from 表名  order by FRecordDate
如果FRecordDate中有重復(fù)值,那么會顯示出所有的記錄來,此TOP功能會失效的
但如果FRecordDate中無重復(fù)值,那么TOP 結(jié)果正確

因此,在ACCESS中使用TOP功能要注意一下order by的字段是否會有重復(fù)值

可以采用“加入主鍵”的方式:

Select top 5 from 你的Access數(shù)據(jù)表名  order by FRecordDate Desc ,ID desc




分享
文章分類
聯(lián)系我們
聯(lián)系人: 王先生
Email: 18449932@qq.com
QQ: 18449932
微博: officecn01
移動訪問