T-SQL:没有聚合的数据透视表
Posted
技术标签:
【中文标题】T-SQL:没有聚合的数据透视表【英文标题】:T-SQL : Pivot table without aggregate 【发布时间】:2019-09-01 06:06:38 【问题描述】:我试图了解如何在 T-SQL 中透视数据,但似乎无法使其正常工作。我有以下表结构
+-------------------+-----------------------+
| Name | Value |
+-------------------+-----------------------+
| TaskId | 12417 |
| TaskUid | XX00044497 |
| TaskDefId | 23 |
| TaskStatusId | 4 |
| Notes | |
| TaskActivityIndex | 0 |
| ModifiedBy | Orange |
| Modified | /Date(1554540200000)/ |
| CreatedBy | Apple |
| Created | /Date(2121212100000)/ |
| TaskPriorityId | 40 |
| OId | 2 |
+-------------------+-----------------------+
我想将名称列转换为预期输出的列
+--------+------------------------+-----------+--------------+-------+-------------------+------------+-----------------------+-----------+-----------------------+----------------+-----+
| TASKID | TASKUID | TASKDEFID | TASKSTATUSID | NOTES | TASKACTIVITYINDEX | MODIFIEDBY | MODIFIED | CREATEDBY | CREATED | TASKPRIORITYID | OID |
+--------+------------------------+-----------+--------------+-------+-------------------+------------+-----------------------+-----------+-----------------------+----------------+-----+
| | | | | | | | | | | | |
| 12417 | XX00044497 | 23 | 4 | | 0 | Orange | /Date(1554540200000)/ | Apple | /Date(2121212100000)/ | 40 | 2 |
+--------+------------------------+-----------+--------------+-------+-------------------+------------+-----------------------+-----------+-----------------------+----------------+-----+
有没有简单的方法?列是固定的(不是动态的)。
任何帮助表示赞赏
【问题讨论】:
【参考方案1】:试试这个:
select * from yourtable
pivot
(
min(value)
for Name in ([TaskID],[TaskUID],[TaskDefID]......)
) as pivotable
您也可以使用案例陈述。 您必须在数据透视表中使用聚合函数。
如果你想了解更多,这里是参考:
https://docs.microsoft.com/en-us/sql/t-sql/queries/from-using-pivot-and-unpivot?view=sql-server-2017
输出(我只试了三列):
DB<>Fiddle
【讨论】:
以上是关于T-SQL:没有聚合的数据透视表的主要内容,如果未能解决你的问题,请参考以下文章