SQL服务器透视查询

时间:2013-06-11 01:03:04

标签: sql-server database tsql pivot

我有数据集

Ptid  Test Result Date
1     BP    Neg   1/1/2013
1     CG    Pos   1/2/2013

我想将结果格式化为

Ptiid  BP  Date      CG   Date
1      Neg  1/1/2013 Pos  1/2/2013

这是否可以在sql server中进行透视?

1 个答案:

答案 0 :(得分:1)

您可以使用带有CASE表达式的聚合函数来获得结果:

select ptid,
  max(case when test = 'BP' then result end) BP,
  max(case when test = 'BP' then date end) BP_Date,
  max(case when test = 'CG' then result end) CG,
  max(case when test = 'CG' then date end) CG_Date
from yt
group by ptid;

请参阅SQL Fiddle with Demo