Google Big Query中的SQL错误,在具有相同架构编辑的表上使用UNION ALL:架构从字符串更改为INT

时间:2019-03-16 01:59:58

标签: sql google-bigquery

我有以下查询

 SELECT *
  FROM `January_2018`

UNION ALL

 SELECT *
  FROM `February_2018`

第二个SELECT通话中出现以下错误

  

UNION ALL中的第14列具有不兼容的类型:STRING,STRING,INT64,   INT64,INT64,INT64,INT64,INT64,INT64,INT64,INT64,INT64在[7:3]

列名是travel_type,类型为整数,值分别为0、1和2。

我正在尝试从几个较小的表中创建一个大表-相同数据的月度表。似乎在第4个月后,其中一个字段已从String更改为Int数据类型,并在此之后保持Int进行中。

2 个答案:

答案 0 :(得分:2)

尝试以下操作,以使两个表模式都匹配:

SELECT * EXCEPT(changed_column)
  , CAST(changed_column AS STRING) AS changed_column
FROM table1
UNION ALL
SELECT * EXCEPT(changed_column)
  , CAST(changed_column AS STRING) AS changed_column
FROM table2

答案 1 :(得分:0)

要从不同的表中选择数据,可以使用通配符而不是联合。通配符将在满足条件的所有表上执行查询。您可以使用带表前缀的通配符“ *”一次选择多个表。您的表名必须具有相同的前缀,但后缀不同。例如– Mytable_1,Mytabel_2,Mytable_3………