< DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd>
很早以前做asp+access的网站,就发现sql语句select top无效,不管top几条都是全部出来,同样的语句在sql2000中正常,邪门了,当时查查关于ACCESS中TOP 功能的一个问题,一直没有解决,就偷懒用限定程序循环次数解决了。
最近重写深度学习(asp)网址导航(www.deepteach.com),又仔细查了一下资料。原来是access中对select top的语句支持有限,如果想在使用,要在查询TOP语句的后面使用Order by,而且Order by排序字段必须是无重复值,如果有重复值的话,那么这个TOP很可能会失效,会返回所有记录。
比如:
Select top 5 from 表 order by 性别,如果“性别”字段中有重复值,那么access数据库查询时很有可能会显示出所有的记录来,此时top功能会失效的,但如果“性别”中无重复值,那么top功能还是有效的。因此,在ACCESS中使用top功能要注意一下order by的字段是否会有重复值,为了保险起见,可以采用加入主键”的方式:Select top 5 from 表 order by 性别,id
用主键作“不可能重复”的保障就可以防止此问题出现了!!
本文转自 netcorner 博客园博客,原文链接: http://www.cnblogs.com/netcorner/archive/2010/04/01/2912027.html ,如需转载请自行联系原作者