设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 6466|回复: 22
打印 上一主题 下一主题

[Access本身] 如何取后50条记录?

[复制链接]
1#
发表于 2012-12-18 16:37:38 | 显示全部楼层
NOT IN 速度应该比较慢,二楼的方法可能更优一些。
2#
发表于 2012-12-18 16:43:41 | 显示全部楼层
本帖最后由 todaynew 于 2012-12-18 17:05 编辑
鑨蘢瀧爖壟 发表于 2012-12-18 10:11
select * from [表名] where not [主键] in (select top 9950 * from [表名] order by [主键])  这样可以吗 ...

既然已经找到9950了,干嘛还要not in?大于9950不就完事了。

select * from tbname where dcount("*","tbname","ID<=" & ID)>9950

实际上9950不是必要的,可以写为:

select * from tbname where dcount("*","tbname","ID<=" & ID)>(dcount("*","tbname")-50)

不过域函数、子查询、in运算速度都比较慢。还是先逆序top 50 ,再顺序一下为好。
3#
发表于 2012-12-19 11:20:01 | 显示全部楼层
本帖最后由 todaynew 于 2012-12-19 11:22 编辑
zhuyiwen 发表于 2012-12-18 23:07
不会你们所想的ID都是自动编号吧?而还是中间没有删除ID的?

编号是什么数据类型,是否存在断号,都不影响。只要id是增长的,而不是随机的就行。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-6-11 15:43 , Processed in 0.096410 second(s), 25 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表