主题:top10热点文章SQL语句怎么搞?
wxpc
[专家分:1240] 发布于 2008-05-30 09:27:00
我用 select top10 * from 表名 order by 点击量字段 desc
结果,出来的数据超出了10条.不知道是怎么回事.不管前面的top10改成top4 top 9 还是出来很多内容.有什么办法来解决??不要跟我说,select * 然后 for i=1 to 10这样解决啊
回复列表 (共6个回复)
沙发
martine [专家分:4950] 发布于 2008-05-30 09:34:00
TOP10中间加个空格看看
板凳
wxpc [专家分:1240] 发布于 2008-05-30 10:27:00
不好意思,那是我打错了的,是top 10 空格10,问题不在这里,请继续帮我想想,郁闷啊
3 楼
wxpc [专家分:1240] 发布于 2008-05-30 11:52:00
我分析,可能的原因是(只是可能,因为我也没底),同时有几个点击率的数字是一样的记录,例如有5条记录的点击量都是:20,那么就会多出4条记录来。
现在只有一个临时解决的办法:
在 do while 下面加个记数器 ii=ii+1
if ii>10 then exit do
这样只要最前的10条记录,就象有点击率是一样的,自少也是前10条点击量最大的。
#######################################################################
如果有了解决办法,请告诉我,我会感激的,而且那是相当感激的。
4 楼
yaozheng [专家分:28410] 发布于 2008-05-30 14:18:00
貌似这个问题只有在access里才有,sql server应该没有,
你可以试试看加个第2排序条件,比如:
select top10 * from 表名 order by 点击量字段 desc,id desc
5 楼
wxpc [专家分:1240] 发布于 2008-05-30 17:04:00
呵呵,真的加个,id desc就行了,看来还是yaozheng大哥强啊,这么多年了还这么利害.
6 楼
liulei001 [专家分:12820] 发布于 2008-06-13 00:55:00
检查一下[点击量字段]字段中是否有Null!
Null会破坏Top的使用!
我来回复