Oracle UNION不同的列

时间:2014-09-19 13:52:37

标签: oracle ora-00918

我有两张表看起来像:

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:列模糊定义'错误

我怎样才能解决这个问题?

2 个答案:

答案 0 :(得分:4)

你可以试试这个

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

答案 1 :(得分: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

基本思想是两者必须具有相同数量的相同数据类型的列。