我正在使用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