注册 登录
编程论坛 ASP技术论坛

一个关于按数字排序的问题请教!

nicechlk 发布于 2008-09-06 19:10, 1384 次点击
如下:
select top 10 * from [表名] order by num desc
说明:
num是数字型字段
出错现象:
虽然是按照数字大小倒序排列,但是却不是前10条记录,而是所有记录.请高手指点!!谢谢!!
11 回复
#2
tianyu1232008-09-06 19:34
select top 10 * from (select * from [表名] order by num desc)

或者

select top 10 * from [表名] order by num desc,其他字段 desc
#3
kira0072008-09-06 19:36
select top 10 * from [表名] order by num desc
单从这语句来看 是 正确的。
错误提示是什么?贴出来看看
可能出错的不是这个部分
#4
nicechlk2008-09-06 19:53
[bo][un]kira007[/un] 在 2008-9-6 19:36 的发言:[/bo]

select top 10 * from [表名] order by num desc
单从这语句来看 是 正确的。
错误提示是什么?贴出来看看
可能出错的不是这个部分





错误倒是没有,就是不能按top 10执行,而是显示所有记录.
#5
kira0072008-09-06 20:01
如果你不嫌烦可以尝试以下方法
dim i
i=0
sql= select top 10 * from [表名] order by num desc
set rs=conn.execute(sql)
do while not rs.eof
i=i+1
response.write  "当前第"&i&"条纪录="&rs(1)
if i>=10 then exit do
rs.movenext
loop
rs.close
set rs=nothing
#6
nicechlk2008-09-07 10:42
其实,我就想按着新闻浏览数量从大到小倒序排列.
我想用一个简单的方法来实现
#7
sunfishy2008-09-07 11:08
top对于数量相同项会全部输出.!.

5楼正解..
#8
nicechlk2008-09-07 21:05
[bo][un]sunfishy[/un] 在 2008-9-7 11:08 的发言:[/bo]

top对于数量相同项会全部输出.!.

5楼正解..

非常感谢,原来是这样的!
#9
nicechlk2008-09-07 21:07
[bo][un]kira007[/un] 在 2008-9-6 20:01 的发言:[/bo]

如果你不嫌烦可以尝试以下方法
dim i
i=0
sql= select top 10 * from [表名] order by num desc
set rs=conn.execute(sql)
do while not rs.eof
i=i+1
response.write  "当前第"&i&"条纪录="&rs(1)
if i>=10 ...

呵呵,你的方法很管用,谢谢你哥们!
#10
smyh2008-09-07 21:22
select top 10 * from [表名] where 1=1 order by num desc

这样在(sql server)可以,ACCESS我没试过!~
#11
nicechlk2008-09-07 21:26
[bo][un]smyh[/un] 在 2008-9-7 21:22 的发言:[/bo]

select top 10 * from [表名] where 1=1 order by num desc

这样在(sql server)可以,ACCESS我没试过!~

你这个方法很独特,我试试先,谢了!
#12
nicechlk2008-09-13 17:59
[bo][un]nicechlk[/un] 在 2008-9-7 21:26 的发言:[/bo]


你这个方法很独特,我试试先,谢了!

where 1=1 是什么意思呢?
1