欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

解决Access中Select Top 与Order By 冲突问题

shiping1 的头像

    Access中,使用Select Top N 与 Order By 字段 desc时,Top 会不生效,显示了全部记录,解决的办法是将主键字段加下Order By 里面,其中[OrderID]中的记录值可能会出现重复值,例如经常用的排序字段,如果在设计上排序字段非主键且允许重复数据显示,而列表中又必须按这个orderid字段排序,那么实现方式如下:

1Select Top 15 * From NewsInfo Where and 条件 Order By [OrderID] Desc, [ID]Desc

    提示说明:如果是Order By [OrderID] ,[ID]Desc,虽然解决了top N 的问题。但是并没有解决按我们的要求orderid去排序,只有以上的那种写法才可以实现按我们的要求去排序,同时top N 又能起作用,本人对自己的数据已经测试通过,如果大家遇到这样的问题可以尝试下以上这种方法。


来自  http://www.5xsj.net/program/1/1/360.html



 

Access数据库Select Top问题

分类: 数据库 749人阅读 评论(0) 收藏 举报

之前从未遇到过Access数据库Select Top的问题,今天是遇到了。

示例如下:Select Top 6 ID,Title From Table Where IsPass=1 Order By OrderID

之前的这个语句确实是只返回6条数据,更新了一些数据后,便会返回多于6条的数据,百思不得其解。

更换成:Select Top 6 ID,Title From Table Where IsPass=1 Order By ID

之后便又只返回6条了。查阅了查卷资料后,发现问题所在:排序字段OrderID存在相同的记录,而Access中TOP 谓词不在相同值间作选择(Top无法在相同的值里选择出你所想要的Top Order)

修正后SQL语句:Select Top 6 ID,Title From Table Where IsPass=1 Order By OrderID, ID Desc

搞定!

 

总结:在Access中使用Select Top语句,排序的字段值不能有重复的,如果存在相同值的记录,则在这个语句中都会返回相应的记录。解决办法:增加排序字段。

来自  http://blog.csdn.net/xijupony/article/details/5741699


普通分类: