【发布时间】:2021-01-15 12:20:01
【问题描述】:
我想知道如何在 SQL 中非常简单地转置一个表。无需进行总和或计算。
此表包含 Numeric 和 Varchar 值。
意思是,我有一个 2 行 x 195 列的表格。我想要一张 195 行 x 2 列(可能是 3 列)的表
| time_index | legal_entity_code | cohort | ... | ... |
|---|---|---|---|---|
| 0 | AAA | 50 | ... | ... |
| 1 | BBB | 55 | ... | ... |
到
| Element | time_index_0 | time_index_1 |
|---|---|---|
| legal_entity_code | AAA | BBB |
| cohort | 50 | 55 |
| ... | ... | ... |
| ... | ... | ... |
我已经创建了这段代码用于测试
SELECT time_index, ValueT, FieldName
FROM (select legal_entity_code, cohort, time_index from ifrs17.output_bba where id in (1349392,1349034)) as T
UNPIVOT
(
ValueT
FOR FieldName in ([legal_entity_code],[cohort])
) as P
但我收到此错误消息:
“cohort”列的类型与 UNPIVOT 列表中指定的其他列的类型冲突。
【问题讨论】:
-
错误在这里告诉你问题;你不明白错误怎么办,我们可以尝试详细说明。
-
你的问题和你的代码不一致。这有点难以理解。
-
确实很抱歉给大家带来了不一致。 Name1 将是“法人实体代码”,Value1 将是“群组”。等等...该表通常包含 195 列。在这段代码中,我只展示了其中的 3 个(为简单起见)
标签: sql sql-server pivot pivot-table unpivot