Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

SQL:União de duas tabelas que não possuem correspondência de coluna completa


Você precisa converter explicitamente NULLs para tipos apropriados no SELECT superior .
CREATE VIEW MY_VIEW AS 
SELECT
TABLE_A.A1,
TABLE_A.A2,
CAST(null AS <type_of_TABLE_B_B2>) as B2
from TABLE_A
union all
SELECT 
null,
TABLE_B.B1,
TABLE_B.B2
from TABLE_B;

Quanto às alternativas como @evilive diz que você pode usar valores fixos como uma string vazia ('' ) para VARCHARs ou zero para NUMBERs, mas, na minha opinião, o cast explícito é a melhor solução porque é óbvio e não causará surpresas

SQLFiddle