【发布时间】:2021-07-24 14:34:04
【问题描述】:
我有一个由 id 相关的属性的 SQL Server 表,并且想要进行查询以检查 id 是否具有一组属性。基本上我想进行如下转换,按 Id 分组并为每个唯一属性添加一列:
起始表:
| Id | Prop | Value |
|---|---|---|
| 1 | P1 | V1 |
| 1 | P2 | V2 |
| 1 | P3 | V3 |
| 2 | P1 | V4 |
| 2 | P2 | V5 |
| 2 | P3 | V6 |
结果表:
| Id | P1 | P2 | P3 |
|---|---|---|---|
| 1 | V1 | V2 | V3 |
| 2 | V4 | V5 | V6 |
甚至可以将行值转换为列名吗?我对 SQL 很陌生,并没有设计这个初始表配置。到目前为止,我尝试使用 pivot 和 group by 都没有成功。
【问题讨论】:
-
如果你事先知道你想要多少列,这是完全可能的。这叫做“转身”。但是,如果您事先不知道列数,您将无法拥有单独的列;不过,您仍然可以将它们连接成一个。
-
根据问题指南,请展示您的尝试并告诉我们您发现了什么(在本网站或其他地方)以及为什么它不能满足您的需求。
标签: sql sql-server tsql