首页 > 解决方案 > SQL,如何通过将行转换为列来使用表创建视图

问题描述

拜托我需要你的帮忙。我正在尝试在 SQL 中创建一个视图,首先如果我有这个表:

在此处输入图像描述

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

在此处输入图像描述

这里的 ID 将自动递增。

我希望这很清楚。我很抱歉,但我尝试了很多来解决这个问题,我真的需要它,所以请大家帮助我。

非常感谢每一件事

标签: sqlsql-server

解决方案


您想以某种方式对数据进行透视。您可以使用条件聚合以及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;

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


推荐阅读