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 end) as "语文",
max(case Subject when