2014-09-19 101 views
0

我有兩個表看起來像:甲骨文UNION不同列

TABLE_1 
COL_A (int), COL_B (float), COL_C (float) 


TABLE_2 
COL_A (int), COL_B (float) 

我的查詢使用UNION把這些表的結果放在一起,但如果TABLE_2沒有COL_C,我希望放置像'0'的東西。 但是我剛剛得到了一個'ORA-00918:列模糊定義'錯誤

我該如何解決這個問題?

+0

你可以發佈你的SQL查詢嗎? – 2014-09-19 13:53:40

回答

3

你可以試試這個

SELECT COL_A, COL_B, COL_C FROM Table1 
UNION 
SELECT COL_A, COL_B, 0 As COL_C FROM Table2 
+0

非常感謝你,AS COL對它進行排序,給它們相同的列名稱。 – Casper 2014-09-19 14:03:33

+0

這個答案是真的可以接受的。但@ jramesh1967的其他答案沒有意義。 – 2014-09-19 14:19:12

+0

從我這邊回答這個問題的投票。 – 2014-09-19 16:00:51

1
SELECT COL_A,COL_B,COL_C FROM TABLE_1 
UNION 
SELECT COL_A,COL_B,'0' AS COL_C FROM TABLE_2 

您還可以能夠與閃避

SELECT COL_A,COL_B,COL_C FROM TABLE_1 
UNION 
SELECT COL_A,COL_B,'0' FROM TABLE_2 

的基本思路是,既要有相同數目的相應的列數據類型。

+0

非常感謝,AS COL對它進行了排序,併爲它們提供了相同的列名。 – Casper 2014-09-19 14:04:00

+1

@ jramesh1967,'COL_C'是'FLOAT'和** NOT **一個字符串。那麼爲什麼你在'NUMBER 0'周圍有單引號? – 2014-09-19 14:13:15

+0

@ KPS-UK,當這個答案失敗幫助你的目的時,你爲什麼跳到結論?也沒有應用代碼標籤,這種回答問題的非專業方式。 – 2014-09-19 14:15:24