SQL,如何通过将行转换为列来使用表进行视图

时间:2018-07-04 20:40:01

标签: sql sql-server

请帮助我。 我先尝试在SQL中进行查看,如果我有此表:

enter image description here

如何使用select to创建视图,该视图将为我提供如下表格:

enter image description here

,此处ID为自动递增。

我希望这很清楚。很抱歉,但是我为解决这个问题付出了很多努力,我真的很需要它,所以请大家帮我。

非常感谢每件事

1 个答案:

答案 0 :(得分:0)

您想要某种方式透视数据。您可以将条件聚合与row_number()一起使用:

select seqnum,
       max(case when po = 'A' then po end) as a,
       max(case when po = 'B' then po end) as b,
       max(case when po = 'C' then po end) as c,
       max(case when po = 'D' then po end) as d,
       max(case when po = 'E' then po end) as e
from (select t.*,
             row_number() over (partition by po order by id) as seqnum
      from t
     ) t
group by seqnum;

我会说在列中重复相同的值似乎有点奇怪。