Oracle
 sql >> Datenbank >  >> RDS >> Oracle

SQL:Union von zwei Tabellen, die keine vollständige Spaltenübereinstimmung haben

Sie müssen NULLen im oberen SELECT explizit in geeignete Typen umwandeln .

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;

Was die Alternativen als @evilive betrifft sagt, dass Sie feste Werte als leeren String verwenden können ('' ) für VARCHARs oder Null für NUMBERS, aber meiner Meinung nach ist die explizite Umwandlung die bessere Lösung, da sie offensichtlich ist und keine Überraschungen hervorruft

SQLFiddle