我正在使用Oracle SQL。我有3个表,其中包括每个80列具有相同的列名称。我想将表格加入到一个新表格中,但由于命名重复,我应该得到一个错误。Oracle SQL列命名
我不要重命名240列。还有其他解决方案吗?
这里是我的表:
T1
表
c1 int,
c2 int,
..
..
..
c80 int
T2
表
c1 int,
c2 int,
..
..
..
c80 int
T3
表
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
是否有诸如问题的任何解决方案?例如 - 显示包含表名称(t1.c1,t1.c2 ...)的完整列名称。
用明确的table.column名称替换通配符并使用别名。 – OldProgrammer 2014-12-03 17:23:10
t3.id = t3.id是可疑的。由于oracle通常并不关心重复的列名称,所以它会追加#s,但是通常会添加下一个数字t2.c1变成t2.c11,但t1.c11已经存在......可能是问题......在没有重命名列或使用动态SQL视图或cte的情况下,如果您仍想执行select * – xQbert 2014-12-03 17:23:47
,我认为您运气不佳。“t3.id = t3.id”是一个错字。我修好了它。无论如何,我收到“重复列名错误”。表名前缀未被追加。 – Omri 2014-12-03 17:26:57