我有两个表看起来像:甲骨文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:列模糊定义'错误
我该如何解决这个问题?
我有两个表看起来像:甲骨文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:列模糊定义'错误
我该如何解决这个问题?
你可以试试这个
SELECT COL_A, COL_B, COL_C FROM Table1
UNION
SELECT COL_A, COL_B, 0 As COL_C FROM Table2
非常感谢你,AS COL对它进行排序,给它们相同的列名称。 – Casper 2014-09-19 14:03:33
这个答案是真的可以接受的。但@ jramesh1967的其他答案没有意义。 – 2014-09-19 14:19:12
从我这边回答这个问题的投票。 – 2014-09-19 16:00:51
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
的基本思路是,既要有相同数目的相应的列数据类型。
非常感谢,AS COL对它进行了排序,并为它们提供了相同的列名。 – Casper 2014-09-19 14:04:00
@ jramesh1967,'COL_C'是'FLOAT'和** NOT **一个字符串。那么为什么你在'NUMBER 0'周围有单引号? – 2014-09-19 14:13:15
@ KPS-UK,当这个答案失败帮助你的目的时,你为什么跳到结论?也没有应用代码标签,这种回答问题的非专业方式。 – 2014-09-19 14:15:24
你可以发布你的SQL查询吗? – 2014-09-19 13:53:40