有没有办法在SQL中动态地向表添加列

时间:2014-05-12 10:09:14

标签: sql

我正在尝试创建一个包含与不同国家/地区相关的信息的主表。这些国家有许多重复的列和许多独特的coulmns。有没有办法动态地将列名添加到主表。

例如。

表1

Country Acc 1000 Acc 1010 Acc 1020 etc
UK           x        x         x
UK           x        x         x

表2

Country Acc 1000 Acc 1010 Acc 1030 etc
FR           x        x         x
FR           x        x         x

Country Acc 1000 Acc 1010  Acc 1020    Acc 1030 etc
FR             x        x         0           x
FR             x        x         0           x   
UK             x        x         X           0
UK             x        x         X           0

非常感谢任何指导。

1 个答案:

答案 0 :(得分:1)

您可以更好地规范化,尝试动态地将列添加到表中。

当您想要创建用户友好的视图时,您可以使用透视来转置结果。

选项1,坚持这个计划:

  • 创建插入后更新,删除触发器并使用execute immediate更改表格;

选项2,规范化:

  • 创建acc表格;
  • 编辑一个,通常使用表格;
  • 阅读Oracle documentation
  • 中的pivot / unpivot