SQL> /
select 1 a from dual union select '2' from dual
*
ERROR at line 1:
ORA-01790: expression must have same datatype as corresponding expression
SQL> /
select '1' a from dual union select 2 from dual
*
ERROR at line 1:
ORA-01790: expression must have same datatype as corresponding expression
2 回答
只要列数据类型不匹配,列名将始终来自第一个查询 . 它不应该(并且,正如您所发现的那样)不会抛出错误 .
如果数据类型不匹配,即使可以进行隐式转换,通常也会出现错误
union
不关心列名,它只关心列的数量,最终关心它们的类型 .通常,列的名称来自
union
中的第一个查询 .