我正在尝试在我的查询中调整数据(SQL Server 2008 R2),我只需要旋转2列,但在数据透视后最多可能有20列。这是我的测试数据,最多包含5个诊断代码:
pid DiagnosisCode
111 145.9
111 17.43
111 17.84
111 196.2
111 202.81
112 204.21
112 249.71
112 263.8
112 145.9
113 269.8
113 276.7
我想要的输出看起来像这样:
pid | code1 | code2 | code3 | code4 | code5 | code6 | code... | code20
----------------------------------------------------------------------------
111 145.9 17.43 17.84 196.2 202.81 NULL NULL NULL
112 204.21 249.71 263.8 145.9 NULL NULL NULL NULL
113 269.8 276.7 NULL NULL NULL NULL NULL NULL
我的代码是:
select pid, DiagnosisCode
from
(select pid, DiagnosisCode, row_number() over(partition by pid order by pid)
as seq
from #temp
) as src
pivot
(min(DiagnosisCode)
for seq
in (DiagnosisCode)) pvt
无论出于何种原因,这个函数都没有跟我一起点击。我知道MIN()聚合函数是必需的,但我的输出中不需要一个。我添加了ROW_NUMBER()行,因此在阅读一篇帖子后会有一个序列字段,但我不确定为什么需要它。我一直在这里和其他网站上阅读所有其他Pivot帖子。我知道这个网站已经多次出现了,但是如果你能帮助我理解我在查询中需要的其他内容,我将不胜感激。