Oracle 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: столбец неоднозначно определен"
Как я могу обойти это?
2 ответа
Решение
Вы можете попробовать это
SELECT COL_A, COL_B, COL_C FROM Table1
UNION
SELECT COL_A, COL_B, 0 As COL_C FROM Table2
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
Основная идея заключается в том, что оба должны иметь одинаковое количество столбцов одинаковых соответствующих типов данных.