面试题:用一条sql语句查询出“每门”课程都大于80分的学生姓名

本文介绍了一种使用SQL查询的方法,旨在筛选出所有科目成绩均超过80分的学生姓名。通过构建示例数据表并运用SQL语句,实现了有效排除部分科目未达标的学生,最终精确获取全科优秀学生的名单。

分析:要查询出每门课程都大于80分的学生姓名,因为一个学生有多门课程,可能所有课程都大于80分,可能有些课程大于80分,另外一些课程少于80分,也可能所有课程都小于80分,那么我们要查找出所有大于80分的课程的学生姓名,我们可以反向思考,找出课程小于80分(可以找出有一些课程小于80分,所有课程小于80分的学生)的学生姓名再排除这些学生剩余的就是所有课程都大于80分的学生姓名了,

1.用一条SQL语句查询出每门课都大于80分的学生姓名

name   kecheng   fenshu
张三     语文       81
张三     数学       75
李四     语文       76
李四     数学       90
王五     语文       81
王五     数学       100
王五     英语       90

[sql]  view plain  copy
  1. --创建表aa  
  2. create table aa(  
  3.     name varchar(10),  
  4.     kecheng varchar(10),  
  5.     fengshu int  
  6. )  
  7.   
  8. --插入数据到表aa中  
  9. insert into aa values('张三','语文',81)  
  10. insert into aa values('张三','数学',75)  
  11. insert into aa values('李四','语文',76)  
  12. insert into aa values('李四','数学',90)  
  13. insert into aa values('王五','语文',81)  
  14. insert into aa values('王五','数学',100)  
  15. insert into aa values('王五','英语',90)  
  16.   
  17.   
  18. --用一条SQL语句查询出每门课都大于80分的学生姓名  
  19. select distinct name from aa where name not in (select distinct name from aa where fengshu<=80)  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值