0

我有以下源数据(数据是数百行源的提取。):

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

这似乎不适合数据透视表的结构,我不知道如何实现这一点。有没有人有什么建议。

4

1 回答 1

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
于 2013-10-07T14:19:19.250 回答