select top 5 * from tbnews where classid=7 order by addtime desc
使用如上语句访问access数据库.可是还是会返回全部的数据,即不会只返回前五条数据,这是为什么呢?
向大家救.
环境:asp.net+access2003

解决方案 »

  1.   

    如果在select语句中使用 “top 5 *”语法,则order by 子句里面的字段就应该为唯一型字段 否则返回的记录集的记录数不一定准确!
      

  2.   

    select distinct 5 * from tbnews where classid=7 order by addtime desc
      

  3.   

    UP,MSSQL2000 和access的SQL语句有些不一样
      

  4.   

    没道理,这句话在Access中应该是正确的。
      

  5.   

    建立一个子查询,把top放在子查询中
    select top 5 * form [select * from thnews where calssid=7 order by lasttime DESC]
      

  6.   

    select top 5 * from tbnews where classid=7 order by addtime desc一共几条数据??
    classid的类型??
      

  7.   

    select top 5 * from (select * from tbnews where classid=7 order by addtime desc)这样就对了.
      

  8.   

    还是返回所有记录???除非你的ORDER BY 后面那个字段全部记录都是相同值,比如你的记录是靠复制粘贴进去的。
    如果排序字段有重复,那么可能会返回多于你需要的行数,因为选中一条,那些相同的都进来了。
      

  9.   

    正如一楼所说你的测试数据是不是addtime都是一样的值?