如何解决acce 中SELECTTOP1语句竟然返回多条记录的问题?

文章作者 100test 发表时间 2007:09:06 11:39:35
来源 100Test.Com百考试题网


问题:

如何解决 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),然后用
0select top 1 a,id from tablename order by a,id


相关文章


acce 如何用代码在“默认值”里实现自动编号?单据流水号生成问题。
如何解决acce 中SELECTTOP1语句竟然返回多条记录的问题?
Acce 新手来看:编号的生成问题
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛