Sql 如何将行转换为具有多行和空值的列
我希望你能在这一点上帮助我: 我想创建一个查询,以便将表的记录作为列,但这些列可以有多行 例如:Sql 如何将行转换为具有多行和空值的列,sql,sql-server,tsql,Sql,Sql Server,Tsql,我希望你能在这一点上帮助我: 我想创建一个查询,以便将表的记录作为列,但这些列可以有多行 例如: | Id | Value | ColumnName | | 1 | A | Q1 | | 2 | B | Q2 | | 3 | C | Q2 | | 4 | D | Q2 | | 5 | E | Q3 | | 6 | F
| Id | Value | ColumnName |
| 1 | A | Q1 |
| 2 | B | Q2 |
| 3 | C | Q2 |
| 4 | D | Q2 |
| 5 | E | Q3 |
| 6 | F | Q3 |
这就是我想要的:
| Q1 | Q2 | Q3
| A | B | E
| NULL | C | F
| NULL | D | NULL
如何在一个查询中获得此结果?(我真的需要在查询中包含它,因为我需要为此创建一个视图)
谢谢和问候 您可以尝试使用pivot
select pv.* from
tablename
pivot
(max(Value) for columnname in ([Q1],[Q2],[Q3])) as pv
您可以尝试使用pivot
select pv.* from
tablename
pivot
(max(Value) for columnname in ([Q1],[Q2],[Q3])) as pv
您可以将条件聚合与
行数()一起使用:
您可以将条件聚合与行数()一起使用:
您使用的是哪个版本的SQL Server?2012? 2016年?版本是2014您使用的是哪个版本的SQL Server?2012? 2016年?版本为2014年