首页 > 解决方案 > 如何从表中插入数据并对其进行透视

问题描述

我有 2 张桌子。

Table1 有大约 2k 列,如下所示:

Id  A B C D E F G H...........................................AA
1
2

Table2 有 2 列,如下所示:

Id Category
1  A
1  C
1  AA
2  B 
2  D  

我想在 table1 中插入和旋转 table2 的数据

表 1 最终应该看起来像

Id  A B C D E F G H...........................................AA
1   1 0 1 0 0 0 0 0...........................................0 
2   0 1 1 0 0 0 0 0...........................................0

我不确定如何在 sql 中执行此操作。非常感谢您对此的任何帮助。

标签: sqlsql-serverpivotsql-server-2014sql-insert

解决方案


关于 sql pivot 命令的绝对愚蠢的事情是你必须知道/列出每一列。出于某种原因,Microsoft Access 有一种非常优雅的方式来旋转所有内容。因此,我什至不会费心使用 pivot 命令。Intead 只是做大量的案例和分组

select 
id, 
sum(case when category = 'A' then 1 else 0 end) as 'A',
sum(case when category = 'B' then 1 else 0 end) as 'B',
sum(case when category = 'C' then 1 else 0 end) as 'C',
etc...
from table2
group by id

我同意其他一些评论。如果您的情况允许,请考虑使用具有出色枢轴/取消枢轴命令的 Excel PowerQuery 或使用基于 gui 的工具,例如具有枢轴/转置工具的 Alteryx。快得多!


推荐阅读