大家好,问大家一个问题,假如现在我有张表A,字段包括学号、姓名、成绩,该表记录了每个学生一年每次考试的语文成绩,现在我想查出每个学生任何两次成绩相差10分以上的学生姓名,这样的SQL语句怎么写呢,谢谢大家了。
解决方案 »
- oracle 11g
- Oracle 的owner 和table_owner 有什么区别?如何修改Table_owner?
- 关于oracle数据库与图片的上传
- oracle中的DML语句从执行计划到最后的脏块写入到磁盘,这个流程具体步骤是什么样子的?
- rs.fields.count的是-1
- 日期转化问题
- !!!急急急,有没有函数像sum一样,对varchar2进行累加呀,每一条记录用逗号分开
- 大G们,帮帮我啊!
- 请教!VC通过OCI连接Oracle数据库的程序
- SQLSERVER的语法到ORACLE怎么通不过
- oracle如何查询大于当前日期的数据(当前日期取0点)
- oracle job相关问题
select 001 as 学号 ,'张三' as 姓名,99 as 成绩 from dual
union all
select 001 as 学号 ,'张三' as 姓名,11 as 成绩 from dual
union all
select 002 as 学号 ,'张1' as 姓名,99 as 成绩 from dual
union all
select 002 as 学号 ,'张1' as 姓名,94 as 成绩 from dual)
select t.姓名
from test t
where exists (select * from test a where a.成绩-t.成绩>10)
从另一角度思考,只要最高分与最低分相差10分就能满足了。
简化了楼主的表
with t as
(select '小王' as name, 60 as score
from dual
union all
select '小王' as name, 70 as score
from dual
union all
select '大刘' as name, 80 as score
from dual
union all
select '大刘' as name, 78 as score from dual)
select name
from (select name, max(score) - min(score)
from t
group by name
having max(score) - min(score) >= 10);