SQL经典面试题集(共2篇).doc
文本预览下载声明
SQL经典面试题集(共2篇)
回目录
SQL经典面试题集(二)
第十一题:
有表students(name,class,grade),请用标准sql语句完成
name clagrade
张三 数学 81
李四 语文 70
王五 数学 90
张三 语文 60
李四 数学 100
王五 语文 90
王五 英语 81
要求: 用sql语句输出各门功课都大于80分的同学姓名?
create table students (
name varchar(25),
clavarchar(25),
grade int
)
insert into students values (#39;张三#39;,#39;语文#39;,20)
insert into students values (#39;张三#39;,#39;数学#39;,90)
insert into students values (#39;张三#39;,#39;英语#39;,50)
insert into students values (#39;李四#39;,#39;语文#39;,81)
insert into students values (#39;李四#39;,#39;数学#39;,60)
insert into students values (#39;李四#39;,#39;英语#39;,90)
insert into students values (#39;王二#39;,#39;数学#39;,81)
insert into students values (#39;王二#39;,#39;英语#39;,90)
insert into students values (#39;李五#39;,#39;数学#39;,83)
insert into students values (#39;李五#39;,#39;英语#39;,90)
insert into students values (#39;李五#39;,#39;化学#39;,90)
---选出所有成绩大于80分的学生姓名-----
------解法一------
select name from students group by name having min(grade)gt;80
------解法二------
select distinct Name from students where grade gt;80 and Name not in (select Name from students where grade lt;80)
------解法三------
select distinct name from students where name not in (select name from students where grade lt;=80 group by name )
-----解法四-------
select name from students group by name having name not in (select name from students where gradelt;=80)
第十二题:
已知一个表的结构为:
姓名 科目 成绩
张三 语文 20
张三 数学 30
张三 英语 50
李四 语文 70
李四 数学 60
李四 英语 90
怎样通过select语句把他变成以下结构:
姓名 语文 数学 英语
张三 20 30 50
李四 70 60 90
create table students (
name varchar(25),
clavarchar(25),
grade int
)
insert into students values (#39;张三#39;,#39;语文#39;,20)
insert into students values (#39;张三#39;,#39;数学#39;,90)
insert into students values (#39;张三#39;,#39;英语#39;,50)
insert into students values (#39;李四#39;,#39;语文#39;,81)
insert into students values (#39;李四#39;,#39;数学#39;,60)
insert into students values (#39;李四#39;,#39;英语#39;,90)
--解答:
select A.Name,A.grade as 语文,B.grade as 数学,C.grade as 英语
from students A,students B,students C
where A.Na
显示全部