在sql server中显示单行到多列

时间:2017-11-28 17:05:53

标签: sql sql-server sql-server-2008 sql-server-2016

我有一张如下表

ID | Data | IDS
1  |  s1  |  4
2  |  s2  |  4
3  |  s3  |  4
4  |  d1  |  5
5  |  d2  |  5

我需要数据显示像USING IDS COLUMN DATA

这样的列
Data1 | Data2
s1    |  d1
s2    |  d2
s2    |  null

请就此要求提出建议

1 个答案:

答案 0 :(得分:0)

您可以使用group byselect max(case when ids = 4 then data end) as col1, max(case when ids = 5 then data end) as col2 from (select t.*, row_number() over (partition by ids order by id) as seqnum from t ) t group by seqnum;

执行此操作
[8888888,
7777777,
6666666,
7777777,
8888888]