Oracle SQL列命名

Oracle SQL列命名,oracle,join,multiple-columns,naming,Oracle,Join,Multiple Columns,Naming,我正在使用Oracle SQL。我有3个表,每个表包含80列,列名称相同。我想将这些表合并到一个新表中,但我想由于重复的命名而导致一个错误 我不知道如何重命名240列。还有其他解决办法吗 这是我的桌子: T1表 T2表 T3表 下面是我的加入: Create table NewTable as select * from T1 inner join T2 on T1.id = T2.id inner join T3 on T1.id = T3.id 这类问

我正在使用Oracle SQL。我有3个表,每个表包含80列,列名称相同。我想将这些表合并到一个新表中,但我想由于重复的命名而导致一个错误

我不知道如何重命名240列。还有其他解决办法吗

这是我的桌子:

T1表

T2表

T3表

下面是我的加入:

Create table NewTable as
select * 
from T1
   inner join T2
      on T1.id = T2.id
   inner join T3
      on T1.id = T3.id
这类问题有什么解决办法吗?例如-显示完整的列名,包括表名t1.c1、t1.c2….

类似于:

选择T1.c1、T1.c2、T2.c1作为c1_T2,T2.c2作为c2_T2

等等。 应该有用

编辑:
或者,您可能希望将记录合并到一个表中。如果需要区分记录,可能会有一个额外的列来描述记录的来源。

用显式table.column名称替换通配符,并使用别名。t3.id=t3.id是可疑的。确切的错误消息是什么?因为oracle通常不关心重复的列名称,它会追加,但通常只添加下一个数字t2.c1变为t2.c11,但t1.c11已经存在。。。这可能就是问题所在。。。在这种情况下,如果不重命名列或不使用动态SQL、视图或cte,我认为如果您仍要执行select,那么您就太倒霉了。t3.id=t3.id是一个输入错误。我修好了。无论如何,我得到了重复的列名错误。没有附加表名前缀。我有240列。您的解决方案不适合这样的列数。您没有其他机会。在您喜爱的编辑器中使用宏如果您不想手动键入is,首先,为什么要联接所有表的所有列?似乎是设计问题。也许你想将记录合并到表中?
c1 int,
c2 int,
..
..
..
c80 int
c1 int,
c2 int,
..
..
..
c80 int
Create table NewTable as
select * 
from T1
   inner join T2
      on T1.id = T2.id
   inner join T3
      on T1.id = T3.id