今天,qq好友中有个哥们,参加一个面试,里面有个行列转换的题目。当时他有些蒙,回来后,看看群里有人,就拿出来一起分享。
结果:
看了一下,知道这是一个标准的行列转换的问题,说实在的我只是知道,真的没有仔细研究过。
按自己的思路写了一个简单的
Code
declare @table table
(
ID int ,
course varchar(10),
Point int
)
insert into @table
select 1 ,'语文',87
union all
select 1 ,'数学',98
union all
select 2,'语文',54
union all
select 3,'语文',97
union all
select 3,'数学',92
union all
select 4,'数学',86
union all
select 5 ,'数学',65
union all
select 6,'语文',76
select ID
, max(case when course = '数学' then Point else 0 end ) as '数学'
, max(case when course = '语文' then Point else 0 end ) as '语文'
from @table group by ID 这个就可以简单的解决上述的问题,但是,问题出现啦,我现在知道是‘数学’和‘语文’两门课程。
要是不知道有几门课程怎么办?(待续)