解決Access數據庫的Sql語句中 Top n 語句獲取多條記錄

2019-06-22 16:06:00
tmtony8
原創
479

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

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

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

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


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

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

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

Select top 5 from 你的Access數據表名  order by FRecordDate Desc ,ID desc




分享
黑龙江p62开奖公告l