SQL面试题1——行转列和查找所有成绩大于80的人

SQL面试题1

  • 1.行转列
  • 2.查找成绩表中所有科目成绩均大于80的学生姓名
    • 方法一:逆向思维(not in/not exists +子查询)
    • 方法二:group by +聚合函数

1.行转列

第一次看见这个题目是在去面试的地铁上,当时看见就觉得很厉害的样子(对于小白),哪篇文章讲的是最仔细易懂的,可惜我找不到了。下面是我自己对这个题目的一次演示。
students表

Name Subject Score
小明 语文 92
小明 数学 95
小明 英语 88
小强 语文 78
小强 数学 88
小强 英语 94

要利用SQL语句将其变成下表

Name 语文 数学 英语
小明 92 95 88
小强 78 88 94

查询语句为:

select Name,
	   max(case Subject when "语文" then Score else null en

你可能感兴趣的:(SQL,SQL语句,SQL初学者,SQL语句提升,sql)