我正在寻找一种在 MS SQL 服务器中将行转换为列的有效方法。
示例数据库表:
**ID PersonID Person201Code Person201Value**
1 1 CurrentIdNo 0556
2 1 FirstName Queency
3 1 LastName Sablan
查询结果应该是这样的:
**CurrentIdNo FirstName LastName**
0556 Queency Sablan
我尝试使用 PIVOT 但它只在行值上返回 null:
SELECT CurrentIdNo, FirstName, LastName
FROM
(
SELECT ID, PersonId, Person201Code, Person201Value
FROM HRPerson201
) src
PIVOT
(
MAX (ID)
FOR Person201Code in (CurrentIdNo, Firstname, LastName))
pvt;
如何在 MS SQL 服务器中成功地将行转换为列?
谢谢!
最佳答案
从数据透视源查询中删除 ID
并添加 Person201Value
数据透视聚合
而不是 ID
SELECT CurrentIdNo,
FirstName,
LastName
FROM (SELECT PersonId,
Person201Code,
Person201Value
FROM HRPerson201) src
PIVOT ( Max (Person201Value)
FOR Person201Code IN (CurrentIdNo,
Firstname,
LastName)) pvt;
关于sql-server - 在 MS SQL 中将行转换为列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35451934/