【问题标题】:T-SQL : Pivot table without aggregateT-SQL:没有聚合的数据透视表
【发布时间】: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   |
+--------+------------------------+-----------+--------------+-------+-------------------+------------+-----------------------+-----------+-----------------------+----------------+-----+

有没有简单的方法?列是固定的(不是动态的)。

任何帮助表示赞赏

【问题讨论】:

    标签: tsql sql-server-2005 pivot


    【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-03
      • 1970-01-01
      • 2018-11-27
      • 2022-12-03
      • 1970-01-01
      相关资源
      最近更新 更多