使用sql语句查出每门课成绩都大于80分的学生姓名

it2024-10-02  50

根据表的结构来使用sql语句查询 建表SQL如下:

create table stu_grade(name varchar(20),coursevarchar(20),grade int);


– 插入数据


INSERT INTO stu_grade VALUES (‘张三’, ‘语文’, ‘81’); INSERT INTO stu_grade VALUES (‘张三’, ‘数学’, ‘75’); INSERT INTO stu_grade VALUES (‘李四’, ‘语文’, ‘76’); INSERT INTO stu_grade VALUES (‘李四’, ‘数学’, ‘90’); INSERT INTO stu_grade VALUES (‘王五’, ‘语文’, ‘81’); INSERT INTO stu_grade VALUES (‘王五’, ‘数学’, ‘100’); INSERT INTO stu_grade VALUES (‘王五’, ‘英语’, ‘90’);

查询每门课都大于80分的同学的姓名:

select distinct name from stu_grade where name not in(select distinct name from stu_grade where grade <=80);

还有一个方法

select name from stu_grade group by name HAVING MIN(grade) > 80;

拓展: SQL SELECT distinct 语句 概念: 在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值

语法: SELECT DISTINCT 列名称 FROM 表名称 在结果集中有多个一样相同的值时,如果需要唯一不同的值则采用distinct语句 两个w3School需要唯一的值这个时候则 SELECT DISTINCT Company FROM Orders 现在,在结果集中,“W3School” 仅被列出了一次。

最新回复(0)