--确定列数为以上4列时
select 
*
from 

pviot
(max([value] for Name in([SEDOL],[ExternalId])))tmp
------大于4列时
select 
*
from 
(select 
ID,type,Name, [values]
from 
T )T2
pviot
(max([value] for Name in([SEDOL],[ExternalId])))tmp

解决方案 »

  1.   

    2005动态列子:
    http://blog.csdn.net/roy_88/archive/2007/02/13/1509413.aspx
      

  2.   

    CREATE TABLE T (Id CHAR(10), Type CHAR(2), Name VARCHAR(20), Value VARCHAR(20))
    GO
    INSERT INTO T VALUES ('F0000000FG', 'FD', 'SEDOL', '4779823')
    GO
    INSERT INTO T VALUES ('F0000000FG', 'FD', 'ExternalId', '6789')
    GO
    select   

    from 
    (
    SELECT Id, Type, Name, Value
    FROM T
    ) t
     PIVOT  ( max(Value)   for   Name   in([SEDOL], [ExternalId]) ) tmp select   

    from   
    (select   
    ID,type,Name,   [values] 
    from   
    T   )T2 
    pviot 
    (max([value]   for   Name   in([SEDOL],[ExternalId])))tmp 
    能测试一下先吗?好像通不过。
      

  3.   

    把数据库兼容性设置为90,数据库—属性里设置
    --------------
    pviot 是2005保留字