tsql - T-SQL:没有聚合的数据透视表
问题描述
我试图了解如何在 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 |
+--------+------------------------+-----------+--------------+-------+-------------------+------------+-----------------------+-----------+-----------------------+----------------+-----+
有简单的方法吗?列是固定的(不是动态的)。
任何帮助表示赞赏
解决方案
尝试这个:
select * from yourtable
pivot
(
min(value)
for Name in ([TaskID],[TaskUID],[TaskDefID]......)
) as pivotable
您还可以使用case 语句。您必须在数据透视表中使用聚合函数。
如果你想了解更多,这里是参考:
https://docs.microsoft.com/en-us/sql/t-sql/queries/from-using-pivot-and-unpivot?view=sql-server-2017
输出(我只尝试了三列):
推荐阅读
- c++ - SSE 整数 2 的 2^n 次方,用于不带 AVX2 的 32 位整数
- python - Python:if、elif、else。错误:SyntaxError:main.py 中第 6 行的错误输入
- windows - 组件的标准类别消失了
- python - pandas: sort by the order of appearance
- php - 使用链接中的所有表单信息将用户重定向到 PayPal 结帐页面是否安全?
- python-3.7 - 如果user_input为A,为什么当我编写函数以给出输出1时输出为空白
- python - 如何修复显示“无效的连续字节”的 UnicodeDecodeError?
- coq - 如何在 Coq 中证明 `(fun _ : nat => False) = Empty_set nat`?
- java - Count Duplicate Entries Firebase
- android - 在 android studio 错误上设置颤振