Google bigquery Google BigQuery使用相同的模式叠加两个表

Google bigquery Google BigQuery使用相同的模式叠加两个表,google-bigquery,Google Bigquery,例如,我有以下表格 TableOne +-----+-------------+--------------+ | Key | FirstColumn | SecondColumn | +-----+-------------+--------------+ | 0 | NULL | 'A' | | 1 | NULL | 'B' | | 2 | 'A' | NULL | | 3

例如,我有以下表格

TableOne    
+-----+-------------+--------------+
| Key | FirstColumn | SecondColumn |
+-----+-------------+--------------+
|   0 | NULL        | 'A'          |
|   1 | NULL        | 'B'          |
|   2 | 'A'         | NULL         |
|   3 | 'E'         | 'F'          |
+-----+-------------+--------------+

我想把表一“叠加”在表二上。并得到以下结果

+-----+-------------+--------------+
| Key | FirstColumn | SecondColumn |
+-----+-------------+--------------+
|   0 | NULL        | 'A'          |
|   1 | 'C'         | 'B'          |
|   2 | 'A'         | 'D'          |
|   3 | 'E'         | 'F'          |
|   4 | 'Z'         | NULL         |
+-----+-------------+--------------+
我目前的解决办法是

SELECT
  Key,
  IFNULL(TableOne.FirstColumn, TableTwo.FirstColumn) FirstColumn,
  IFNULL(TableOne.SecondColumn, TableTwo.SecondColumn) SecondColumn
FROM
  TableOne
FULL OUTER JOIN
  TableTwo
USING
  (Key)
我不喜欢这个解决方案,因为如果两个源表有许多列,那么查询的冗长性很快就会超过它试图实现的复杂性

我还没有从谷歌那里找到答案,我想知道是否有更优雅的方式来做同样的事情

提前感谢您的建议和建议

SELECT
  Key,
  IFNULL(TableOne.FirstColumn, TableTwo.FirstColumn) FirstColumn,
  IFNULL(TableOne.SecondColumn, TableTwo.SecondColumn) SecondColumn
FROM
  TableOne
FULL OUTER JOIN
  TableTwo
USING
  (Key)