我有以下源数据(数据是几百行源的摘录。):
ID CodeID Code
3749 69 354
3750 69 864
33721 130 XXX
33722 130 319
30446 159 XXX
30447 159 XXX
并使用T-SQL我需要实现:
CodeID Code1 Code2
69 354 864
130 XXX 319
159 XXX XXX
这似乎不适合数据透视表的结构,我不知道如何实现这一点。有没有人有任何建议。
答案 0 :(得分:5)
如果您首先使用pivot
row_number()
执行此操作
select codeid, [1] as Code1,[2] as Code2 -- .... ,[3] etc
from
(
select codeid, code, ROW_NUMBER() over (partition by codeid order by id) rn
from yourtable
) p
pivot (max(code) for rn in ([1],[2])) p2 --, [3]... etc