如何把一个一维表转换成二维表
SQL查询该如何写呢?
一维表table a如下:
年级 课目 人数
2001 语文 20
2001 数学 15
2002 语文 20
2002 数学 15
2003 语文 20
2003 数学 15
如何转换成如下格式的二维表:
语文 数学
2001 20 15
2002 20 15
2003 20 15
对于这类问题,有两种方法:一种是直接写,
通过原来的一维表a,构造出新的表。首先,查询出所需的表的列,分别是年级、科目(这里直接写的方法必须是要知道表a 科目的值,一一列举),然后通过复合查询,将各个科目的分数分别赋给其科目。
select 年级,(select 人数 from tablename a where a.年级=b.年级 and a.课目='数学') as 数学 ,(select 人数 from tablename a where a.年级=b.年级 and a.课目='语文') as 语文 from tablename b group by 年级 order by 年级