我有以下查询
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进行中。
答案 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………