我试图透视一个两列表,但没有得到我想要的结果。
以下是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