需要为非现有列添加0来转置表数据

时间:2014-06-08 18:02:16

标签: sql pivot-table sql-server-2008r2-express

我的数据如下 -

FieldValue         FiledID    UnqiueID
Name1                 13          1
Address1              14          1
NAme2                 13          2
Address2              14          2
Name3                 13          3
Address3              14          3
Date1                 15          3
Date2                 16          3
Date3                 17          3

我想转置它。 我的结果如下 -

Name1地址1 0 0 0
名称2地址2 0 0 0
姓名3地址3日期1日期2日期3

我试图通过PIVOT来做,但没有成功。 喜欢通过SQL实现它而不喜欢任何SP。

1 个答案:

答案 0 :(得分:0)

我倾向于使用条件聚合而不是pivot来执行此操作:

select max(case when FieldId = 13 then FieldValue end) as Name,
       max(case when FieldId = 14 then FieldValue end) as Address,
       max(case when FieldId = 15 then FieldValue end) as Date1,
       max(case when FieldId = 16 then FieldValue end) as Date2,
       max(case when FieldId = 17 then FieldValue end) as Date3
from table t
group by uniqueid;