在SQL Server中使用pivot运算符无法获得所需的结果



我试图透视一个两列表,但没有得到我想要的结果。

以下是Employees表中的数据示例:

DataPoint  Populated
name       Ram
email      ram@gmail.com
age        23
name       Shyam
email      shyam23@gmail.com
age        28
name       John
email      john@gmail.com
age        33
name       Bob
email      bob32@gmail.com
age        41

这是我想要的:

name   email                age
Ram    ram@gmail.com        23
Shyam  shyam23@gmail.com    28
John   john@gmail.com       33
Bob    bob32@gmail.com      41

这是我的代码:

;WITH NeedToPivot AS(
SELECT *
FROM Employees)
SELECT *
FROM NeedToPivot
PIVOT(MAX(Populated) FOR DataPoint IN("name","email","age"))x

以下是它返回的内容:

name    email               age
Shyam   shyam23@gmail.com   28

根据Sean Lange的反馈,我在Employees表中添加了EmployeeId列。pivot操作符现在理解了我想要的分组,查询正返回我想要的内容。

员工表现在看起来是这样的:

EmployeeId    DataPoint  Populated
1              name       Ram
1              email      ram@gmail.com
1              age        23
2              name       Shyam
2              email      shyam23@gmail.com
2              age        28
3              name       John
3              email      john@gmail.com
3              age        33
4              name       Bob
4              email      bob32@gmail.com
4              age        41

最新更新