我已经用重复的ID(按问题显示)逐行提取了数据,但我希望按照(输出)中的输出显示

时间:2019-04-28 12:47:22

标签: sql sql-server-2008 pivot

从简单的SQL查询(问题)中获取的数据:

S

我想要如下输出:

Id  comment
--------------------------------
1   approved
1   changed
1   hold
2   approved
3   changed
4   hold

我希望使用sql查询将ID 1的所有注释都排成一排

Id  Comment  Comment Comment
---------------------------------------------
1   approved Changed Hold
2   approved Null    Null
3   Changed  Null    Null
4   hold     Null    Null

一个ID最多只能包含三个注释。

1 个答案:

答案 0 :(得分:0)

您可以使用条件聚合:

select id,
       max(case when seqnum = 1 then comment end) as comment_1,
       max(case when seqnum = 2 then comment end) as comment_2,
       max(case when seqnum = 3 then comment end) as comment_3
from (select t.*,
             row_number() over (partition by id order by id) as seqnum
      from t
     ) t
group by id;