用一条sql语句查询出每门课都大于80分的学生姓名
首先需要进行分析:
要查询出每门课程都大于80分的学生姓名,因为一个学生有多门课程,所以会出现下面三种情况。
- 第一可能所有课程都大于80分。
- 第二可能有些课程大于80分,另外一些课程少于80分。
- 第三也可能所有课程都小于80分。
那么我们要查找出所有大于80分的课程的学生姓名,我们可以反向思考,找出课程小于80分(可以找出有一些课程小于80分,所有课程小于80分的学生)的学生姓名再排除这些学生剩余的就是所有课程都大于80分的学生姓名了。
分析完成后,进入数据图形化管理界面创建表并插入数据:
建表:
插入数据:
用一条SQL语句查询出每门课都大于80分的学生姓名:
扩展资料:
除了用distinct还可以用not in 或者 not exists 实现,代码如下:
//not in
SELECT DISTINCT A.name FROM Student A WHERE A.name not in(SELECT Distinct S.name FROM Student S WHERE S.score <80);//not exists
SELECT DISTINCT A.name From Student A where not exists (SELECT 1 From Student S Where S.score <80 AND S.name =A.name);
我是白鹿,一个不懈奋斗的程序猿。望本文能对你有所裨益,欢迎大家的一键三连!若有其他问题、建议或者补充可以留言在文章下方,感谢大家的支持!