如何用简单的一句写出来

acup 2000-08-16 03:02:00
假如有一张保存学生单科考试成绩的表,如何用一个简单的SQL语句
将考分最高的学生记录显示出来(不仅仅是成绩,还有其他如表中
的姓名班级等),不嵌套多次查询结果。谢谢
...全文
212 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
JGTM2000 2000-09-02
  • 打赏
  • 举报
回复
不让用子查询?没道理的要求。存在就有存在的道理。该用就用。况且在这种情况下效率不成问题。
zcw 2000-09-01
  • 打赏
  • 举报
回复
select top 1 max(分数),代码,姓名 from 成绩表
group by 分数,代码,姓名
order by 分数 desc

zcw 2000-09-01
  • 打赏
  • 举报
回复
select top 1 max(分数),代码,姓名 from 成绩表
group by 分数,代码,姓名
order by 分数 desc
luodf 2000-08-29
  • 打赏
  • 举报
回复
可以用left join 的办法
guofupei 2000-08-28
  • 打赏
  • 举报
回复
select name,fs from report having grestest(fs)
razzor 2000-08-16
  • 打赏
  • 举报
回复
bing71的方法似乎可以
但如果最高成绩有多人,比如都是100分,那怎么办?
top 几呢??
最糟糕的你发现整个班级有一半人都是100分………… :)

你的方法是个好办法,我也想到过,但马上就否定了,因为不实际,没人保证最高分只有1个,或者2,3个等等。

所以这道题目只有用子查询才能满足要求,思路也清晰
其实编sql语句的目的首先要保证准确性,其次才是高效。该用子查询的时候就应该用。
bing71 2000-08-16
  • 打赏
  • 举报
回复
select top 的方法在SQL 7.0可以用,但不清楚在SQL 6.5能不能行得通。
bing71 2000-08-16
  • 打赏
  • 举报
回复
select top 1 分数,代码,姓名 from 成绩表 order by 分数 desc
如果你要的是前几名的成绩,将top后的数字改成你要提取的前几名就行了。
bing71 2000-08-16
  • 打赏
  • 举报
回复
select top 1 分数,代码,姓名 from 成绩表 order by 分数 desc
huntout 2000-08-16
  • 打赏
  • 举报
回复
不用子查询我想是不行的!︰)
acup 2000-08-16
  • 打赏
  • 举报
回复
我说过不用子查询,有不用子查询的方法吗?
razzor 2000-08-16
  • 打赏
  • 举报
回复
这好像很简单,但其实不想表面这么简单,不知道我是不是领会你的题意

比如有这样一张表aa:
code 学号
name 名字
……
result 成绩

select code,name,...,result from aa
where result=max(result)

上述写法20000%是错误的,我觉得只能
select code,name,result from aa
where result = ( select max(result) from aa)

这样写,换句话说一个简单的sql达不到要求,只能用子查询
huntout 2000-08-16
  • 打赏
  • 举报
回复
select * from table1 where field1 = (select max(field1) from table1)
claider 2000-08-16
  • 打赏
  • 举报
回复
SQL
参照任何一笨简单的vfp或略深的vb教程都有
SELECT 语句

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧