Discuz!NT
欢迎 游客 , 注册 | 登录 | 会员 | 界面 | 简洁版本 | 在线 | 帮助
商都网教育宝典宝库

发表新主题 回复该主题
本主题被查看225次, 共1个帖子, 1页, 当前为第1页     选择页数: 1      跳转到第   上一主题   下一主题
标题: 解决SELECTTOP1语句返回多条记录
-[尕硴]
超级版主
UID: 71
来自:
精华: 130
积分: 14003
帖子: 12909
注册: 2007-10-22 17:59:00
状态: 在线
威望: 444.00
金钱: 3355.00 元
只看楼主 2008-04-11 14:19
解决SELECTTOP1语句返回多条记录
问题:

  如何解决 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
#1  
发表新主题 回复该主题
本主题被查看225次, 共1个帖子, 1页, 当前为第1页     选择页数: 1      跳转到第







现在的时间是 2008-07-24 12:19:17

版权所有 商都网教育宝典
         Powered by Discuz!NT 1.0.6666    Copyright © 2001-2008 Comsenz Inc.
Processed in 0.064 seconds