access数据库select查询top时有时无效,原因就是在使用Order by时,且排序的条件中数据有重复的。
比如:select top 10 * from table1 order by cdate desc
其中数据中cdate有很多重复的,这样就导致top失效了。
解决办法就是order一个主键字段来辅助实现
如:select top 10 * from table1 order by cdate desc,ID desc
这样就可以了。
参考一个相关的解释吧,如下:
JET SQL不是 T-SQL语句。jet sql 会返回重复值,也就是说,一个表中如果 ORDER BY 的字段都是 0 ,一共有100条记录,即使你用SELECT TOP 1 来返回记录,也同样返回100条记录,因为 JET DB 无从在这100条记录里面判断先后次序,只能返回100条。要解决此问题可以在后面加入一个主键字段。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步