用SQL语句查询access数据库news数据表里的数据,想要选出表里最新发布的六条数据显示在页面。用select top 6 * FROM News order by creattime desc语句实现。问题:如果同一天发布很多条数据,比如8条,那么使用上述语句一次都筛选出来,多于六条记录(creattime字段在数据库以短日期格式yyyy-mm-dd定义)。请问高手,诸如此类情况该怎么解决?

解决方案 »

  1.   

    select top 6 with ties * FROM News order by creattime desc
      

  2.   

    那是SQL SERVER的语法 在ACCESS里面不知道怎么做
      

  3.   

    因为你排序字段creattime 的值不是唯一的,所以TOP 6 索引出来的值可能会重复。建议你为每条数据添加一个自动编号字段(假设添加为ID),SELECT时这先按时间日期排序,若时间字段有重复值时再按ID排序。如:select top 6 * FROM News order by creattime desc,ID (即在你原来SQL语句后添加第二个排序字段)
      

  4.   

    问题出在creattime 有重复的
      

  5.   

    select top 6 * FROM TBTEST order by ID desc,DATE ASC
    最下面的 id 不会自动增大的。要最新发布的就是取id最大的前6条记录。对吧楼主