1. 程式人生 > >面試題:用一條sql語句查詢出“每門”課程都大於80分的學生姓名

面試題:用一條sql語句查詢出“每門”課程都大於80分的學生姓名

分析:要查詢出每門課程都大於80分的學生姓名,因為一個學生有多門課程,可能所有課程都大於80分,可能有些課程大於80分,另外一些課程少於80分,也可能所有課程都小於80分,那麼我們要查找出所有大於80分的課程的學生姓名,我們可以反向思考,找出課程小於80分(可以找出有一些課程小於80分,所有課程小於80分的學生)的學生姓名再排除這些學生剩餘的就是所有課程都大於80分的學生姓名了,

1.用一條SQL語句查詢出每門課都大於80分的學生姓名

name   kecheng   fenshu
張三     語文       81
張三     數學       75
李四     語文       76
李四     數學       90
王五     語文       81
王五     數學       100
王五     英語       90

--建立表aa
create table aa(
	name varchar(10),
	kecheng varchar(10),
	fengshu int
)

--插入資料到表aa中
insert into aa values('張三','語文',81)
insert into aa values('張三','數學',75)
insert into aa values('李四','語文',76)
insert into aa values('李四','數學',90)
insert into aa values('王五','語文',81)
insert into aa values('王五','數學',100)
insert into aa values('王五','英語',90)


--用一條SQL語句查詢出每門課都大於80分的學生姓名
select distinct name from aa where name not in (select distinct name from aa where fengshu<=80)