Postgresql 多个表的并集,每个表都有一个唯一的列

Postgresql 多个表的并集,每个表都有一个唯一的列,postgresql,Postgresql,我有许多带有数据值的表。它们都有许多相同的列,但每个列都有一个唯一的列: TableA = id, value, source, destination_a TableB = id, value, source, destination_b TableC = id, value, source, destination_c TableD = id, value, source, destination_d ... 我想创建所有这些数据的视图,例如: TableV = id, value, so

我有许多带有数据值的表。它们都有许多相同的列,但每个列都有一个唯一的列:

TableA = id, value, source, destination_a
TableB = id, value, source, destination_b
TableC = id, value, source, destination_c
TableD = id, value, source, destination_d
...
我想创建所有这些数据的视图,例如:

TableV = id, value, source, destination_a, destination_b, destination_c, destination_d
其中,如果不是来自该表,则每行的目的地_X为空

我已尝试手动为列设置空值,例如,仅使用上述两个表:

CREATE VIEW TableV AS
SELECT id, value, source, destination_a NULL AS destination_b FROM TableA UNION
SELECT id, value, source, destination_b NULL AS destination_a FROM TableB
但这会留下一列完全空白

如何创建一个表,它是所有这些表的并集,但包含所有N列并适当地为空

TableV | id | value | source | destination_a | destination_b
         a0    a1      a2      a3              NULL
         b1    b2      b3      NULL            b4

我不确定这是否适用于PostgresSQL,但对于SQL Server,我认为类似这样的东西会起作用:

CREATE VIEW TableV AS
SELECT id, value, source, destination_a as [A],NULL as [B],NULL as [C], NULL as [D]
    FROM TableA UNION
SELECT id, value, source, NULL as [A],destination_b  as [B],NULL as [C], NULL as [D]
    FROM TableB UNION
SELECT id, value, source, NULL as [A],NULL as [B],destination_c  as [C], NULL as [D]
    FROM TableC UNION
SELECT id, value, source, NULL as [A],NULL as [B],NULL as [C], destination_d as [D]
    FROM TableD 

好的,这里的问题只是我是如何订购SELECT的。我本应该:

CREATE VIEW TableV AS
SELECT id, value, source, destination_a NULL AS destination_b FROM TableA UNION
SELECT id, value, source, NULL AS destination_a, destination_b FROM TableB
我把空值作为。。。在每次选择的末尾