如何解决 select top 1语句竟然返回多条记录的问题?
简述:如何解决 select top 1语句竟然返回多条记录的问题
问题:
如何解决 select top 1语句竟然返回多条记录的问题?
select top 9 title,id,hit from article where datediff(h,[showdateb],now())>=0
可以正确显示前9条
select top 9 title,id,hit from article where datediff(h,[showdateb],now())>=0 order by hit desc
就成了全部显示
???
只有4个值.很多是0
是不是这样不足九个就会全取出?
怎么解决呢???
在sql server就没有这种问题阿
回答:
再说一遍,jet sql不是 t-sql语句。
jet sql 会返回重复值,也就是说,一个表中如果 order by 的字段都是 0 ,一共有100条记录,即使你用select top 1 来返回记录,也同样返回100条记录,因为 jet db 无从在这100条记录里面判断先后次序,只能返回100条。要解决此问题可以建立一个自动编号字段(id),然后用
select top 1 a,id from tablename order by a,id
http://access911.net 站长收藏
