在Oracle中行列互换可以通过decode来实现,SqlServer中我们也有相应的措施;case
下面是一个列子
下面是一个列子
1 --建表
2 Create table test ( [name] char(10), km char(10) , cj int )
3 Go
4 --初始化数据
5 insert into test values('张三','语文',80)
6 insert into test values('张三','数学',86)
7 insert into test values('张三','英语',75)
8 insert into test values('李四','语文',78)
9 insert into test values('李四','数学',85)
10 insert into test values('李四','英语',78)
11 Go
12 --行列互换
13 select name,sum(case km when '语文' then cj end) as 语文,
14 sum(case km when '数学' then cj end) as 数学,
15 sum(case km when '英语' then cj end) as 英语
16 from test
17 group by name
2 Create table test ( [name] char(10), km char(10) , cj int )
3 Go
4 --初始化数据
5 insert into test values('张三','语文',80)
6 insert into test values('张三','数学',86)
7 insert into test values('张三','英语',75)
8 insert into test values('李四','语文',78)
9 insert into test values('李四','数学',85)
10 insert into test values('李四','英语',78)
11 Go
12 --行列互换
13 select name,sum(case km when '语文' then cj end) as 语文,
14 sum(case km when '数学' then cj end) as 数学,
15 sum(case km when '英语' then cj end) as 英语
16 from test
17 group by name