在SQL Server 2008中将同一行中的多个结果行按一列分组

时间:2016-03-17 11:08:12

标签: sql sql-server pivot

我正在使用SQL Server 2008.我有一个临时表,它返回此结果:

ID      NAME        TYPE        REGION  DATE_HIRED
--------------------------------------------------
75038   GRUPO FOO   COMPANY A   EUROPE    201512
75038   GRUPO FOO   COMPANY A   EUROPE    201511
75038   GRUPO FOO   COMPANY A   EUROPE    201510

我想获得公司的聘用日期和同一行中的所有信息,我希望结果的格式如下:

 ID       NAME       TYPE       REGION   DATE_HIRED1  DATE_HIRED2 DATE_HIRED3...
75038   GRUPO FOO   COMPANY A   EUROPE    201512         201511      201510...

可能的雇用日期可能是4(201512,201511,201510,201509),但公司在其中一个日期不能签订合同?

如何使用SQL Server 2008查询以获得上述结果?

我尝试在SQL Server 2008中使用PIVOT,但我失败了。

我怀疑PIVOT运算符是我需要的(根据这篇文章,无论如何),但我无法弄清楚如何开始,特别是当表中的question_id行数可能不同时。在上面的示例中,它是5,但在另一个查询中,该表可能会填充7个不同的问题。

1 个答案:

答案 0 :(得分:2)

您可以使用DELETE或条件聚合。关键是要使用pivot

获取旋转列
row_number()