sql数据透视表与字符串

时间:2015-07-01 17:55:07

标签: sql-server pivot

我正在使用sql 2008并试图转移一些数据。 Sql Fiddle

我已经尝试但无法弄明白。我想要的是获取数据并让它看起来像这样。

enter image description here

我会把我尝试过但没有任何东西会运行,我无法让它同时执行ExamID和得分,然后转动其余部分。

我尝试过这样简单的事情

  

SELECT *   来自dbo.Results   枢   (最大值(答案)   FOR ExamID IN([19966],[19969])   )   AS p

但返回null。无论如何,一些帮助会很棒。 谢谢 香农

1 个答案:

答案 0 :(得分:0)

您可以使用@ bluefeet的答案,但为了匹配您的预期输出,您还需要更改样本数据:

create TABLE Results
    (
      ExamID INT
    , Score INT
    , Bank INT
    , Answer CHAR(1)
    );
INSERT  INTO results
        ( ExamID, Score, Bank, Answer )
VALUES  ( 1, 70, 15, 'a' ),
        ( 1, 70, 16, 'a' ),
        ( 1, 70, 17, 'b' ),
        ( 1, 70, 18, 'd' ),
        ( 1, 70, 19, 'c' ),
        ( 2, 81, 15, 'b' ),
        ( 2, 81, 16, 'd' ),
        ( 2, 81, 17, 'c' ),        
        ( 2, 81, 18, 'c' ),
        ( 2, 81, 19, 'c' );

透视查询:

select *
from Results
pivot
(
  max(answer)
  for bank in ([15], [16], [17], [18], [19])
) piv

SQL Fiddle Demo