需要有关此表sql server的pivot的帮助

时间:2011-07-15 13:45:24

标签: sql-server linq-to-sql

我有一个包含以下结构的表

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也没关系,我可以理解它。

1 个答案:

答案 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