【发布时间】:2020-04-10 17:11:56
【问题描述】:
我正在努力在 T-SQL 中编写 select 语句,该语句生成一个表,其中列名表示源表列 (FieldName) 的值以及列中值的记录 (@987654323 @) 并按外键 (RegistrationId) 分组。
我发现了很多具有类似问题的示例,但我很惊讶我找不到正确的解决方案,因为在我看来这是一种非常常见的情况。
|RegistrationID |FieldName|FieldValue |
+------------------+---------+-----------------------+
|Guid1 |firstname|john |
|Guid1 |lastname |johnson |
|Guid1 |email |john.johnson@mail.com |
|Guid2 |firstname|mary |
|Guid2 |lastname |williams |
|Guid2 |email |mary.williams@mail.com |
|Guid3 |firstname|james |
|Guid3 |lastname |miller |
|Guid3 |email |james.miller@mail.com |
|Guid4 |firstname|patricia |
|Guid4 |lastname |jones |
|Guid4 |email |patricia.jones@mail.com|
结果表
|RegistrationID |firstname|lastname |email |
+------------------+---------+------------------+------------------------+
|Guid1 |john |johnson |john.johnson@mail.com |
|Guid2 |mary |williams |mary.williams@mail.com |
|Guid3 |james |miller |james.miller@mail.com |
|Guid4 |patricia |jones |patricia.jones@mail.com |
我尝试使用 pivot 和 case 语句,但结果远非令人满意。
非常感谢任何指导
附言。名字是随机生成的,所以任何对真实人物的引用都是巧合。
【问题讨论】:
标签: sql sql-server tsql pivot entity-attribute-value