SQL server旋转查询



我有数据集

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 pivot吗?

您可以使用带有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

最新更新