只显示排行前十名的学生成绩,标准SQL怎么实现。(不要Select所有的记录出来)(50分)

  • 主题发起人 主题发起人 Dlp
  • 开始时间 开始时间
Select Top 10 * from [学生成绩表] Order By [学生成绩]
 
Select Top 10 * from [学生成绩表] Order By [学生成绩] desc
 
疏忽,Bugs是对的.
 
对不起,我是说用标准SQL,也就是说用的是Paradox表,而不是MSSQL
 
同意 Bugs
 
Top 10 语法可是MSSQL所专有的啊。
 
select * from table order by
for i=1 to 10
if rs.eof then exit
rs.next

 
那就用存储过程:
简单介绍一下思路:
declear @max_value,@num
select @max_value=10000 //或给出一个肯定大余所有 学生的成绩的值
selct @num=10
for i=1 to @num
select @max_value=max([学生成绩]) from [学生成绩表] where [学生成绩]<@max_value
next


 
都没回答到点子上,难道是我没讲清楚。
我程序的运行环境是exe+.db文件。并非MSSQL或Oracle或其它。
所以
1。不存在数据库服务器的专门语法
2。不能运行存储过程
3。不要说Select到所有记录然后再取前十条。
 
用ADO连接,将cachesize设为10,同时设置异步执行选项。
 
同意Yang J.Q. 但设置MaxRecords为10.
 
同意netameng,然后再在Table的Filter里写条件就可以。
 
没有办法,但你可试试分两步走,
一、利用select语句,查询并按成绩排序,但不显示query的内容。
二、利用for语句,将前10条记录,保存到一个空白数据库中,然后打开该数据库。
 
多人接受答案了。
 
select * from table order by *** limit 0,10
-->这样不行吗?
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部