Вы также можете увидеть эту ошибку при выборе объединения, где соответствующие столбцы могут быть нулевыми.
select * from (select D.dept_no, D.nullable_comment
from dept D
union
select R.dept_no, NULL
from redundant_dept R
)
Это явно сбивает с толку синтаксический анализатор, решение состоит в том, чтобы назначить псевдоним столбца всегда пустому столбцу.
select * from (select D.dept_no, D.comment
from dept D
union
select R.dept_no, NULL "nullable_comment"
from redundant_dept R
)
Псевдоним не должен совпадать сстолбец, но заголовок столбца в результате определяется первым запросом среди членов объединения, так что это, вероятно, хорошая практика.