我有一个包含以下结构的表
uid sid eid Key value
1 1 1 F.Name Simon
2 1 1 L.Name Jones
3 1 1 C.Name AAPL
4 1 1 Address Infinite
5 2 1 F.Name Brad
6 2 1 L.Name Pitt
7 2 1 C.Name Holly
8 2 1 Address LA
我想将上表转换为以下格式
sid F.Name L.Name C.Name Address
1 Simon Jones AAPL Infinite
2 Brad Pitt Holly LA
基本上我需要将“Key”列的值作为新表中的列字段。我没有其他桌子。甚至Linq to sql也没关系,我可以理解它。
答案 0 :(得分:1)
在2005
及以后:
SELECT *
FROM (
SELECT sid, key, value
FROM mytable
) q
PIVOT (
MIN(value)
FOR
key IN ([F.Name], [L.Name], [C.Name], [Address])
) p