0
我试图在我的查询中转换数据(SQL Server 2008 R2),并且我只需要旋转2列,但在旋转后最多可能有20列。这是我与多达5个诊断代码的测试数据:用于医疗保健诊断代码的SQL枢轴功能
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帖子。我知道这个网站已经有很多次了,但是如果你能帮助我理解我的查询需要什么来使其发挥作用,我将不胜感激。
谢谢。我实际上来自Foxpro背景,所以我猜它是当我不明白某些东西时我回复的内容。 – Tmartin