首页 > 解决方案 > SQL 使每一列成为一个新表

问题描述

我有一个表,其中包含 [ID] 列、[t] 列指示期间以及 22 个其他会计分类帐相关列:

ID 收入 费用 ...20 其他列 ...
1 1 23,040 21,204 某某,某某
1 2 21,302 19,302 某某,某某
1 3 51,302 29,302 某某,某某
1 4 61,302 49,302 某某,某某
2 1 23,040 21,204 某某,某某
2 2 21,302 19,302 某某,某某
2 3 51,302 29,302 某某,某某
2 4 61,302 49,302 某某,某某

我想根据此处的列创建新表,例如收入表和费用表,并将枢轴 [t] 作为新表中的列。

现在我正在编写 22 个重复代码的查询,SELECT 每一列,pivot,并创建我的新表。而且我必须手动并单独运行它们。我想知道是否有更聪明的方法来编写一个查询并创建 22 个表,每个表都从原始表中各自的列中获取值。

谢谢

标签: sql

解决方案


根据您的数据库,您可以在系统表上搜索表的定义(例如:您可以使用 Oracle )并基于此SYS.DBA_TABLES生成语句。CREATE TABLE

然后您可以查询您的表并将值插入新表中。


推荐阅读