SQL常见面试题
1.用一条SQL语句查询出table表中每门课都大于80分的学生姓名
name | subject | score |
---|---|---|
张三 | 语文 | 82 |
张三 | 数学 | 76 |
李四 | 语文 | 78 |
李四 | 数学 | 90 |
王五 | 语文 | 81 |
王五 | 数学 | 99 |
王五 | 英语 | 92 |
select distinct name from table where name not in (select distinct name from table where score <=80)
2.student表如下:
order | Snumber | name | Cnumber | subject | score |
---|---|---|---|---|---|
1 | 1001 | 张三 | 001 | 语文 | 78 |
2 | 1002 | 李四 | 001 | 语文 | 96 |
3 | 1003 | 王五 | 001 | 语文 | 65 |
删除除了序号不一样,其他列都相同的重复信息。
delete student where order not in (select min(order) from student group by Snumber,name,Cnumber,subject,score)
3.一个叫team的表,里面只有一个字段name,一共有4条纪录,分别是a,b,c,d,对应四个球队,现在四个球队进行比赛,用一条sql语句显示所有可能的比赛组合。
select m.name,n.name from team m,team n where m.name<n.name;