在具有相同模式编辑的表上使用UNION ALL进行Google大查询时出现SQL错误:模式从字符串更改为INT

在具有相同模式编辑的表上使用UNION ALL进行Google大查询时出现SQL错误:模式从字符串更改为INT,sql,google-bigquery,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,INT64在[7:3] 列名为travel_类型,其类型为值为0、1和2的整数 我试图从几

我有以下疑问

 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,INT64在[7:3]

列名为travel_类型,其类型为值为0、1和2的整数


我试图从几个较小的表中生成一个较大的表——相同数据的月度表。似乎其中一个字段在第4个月后已从字符串更改为Int数据类型,并在此后保持Int

尝试以下操作,使两个表架构匹配:

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

请尝试以下操作,以使两个表架构匹配:

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

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

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

UNION
要求将两个查询放在一起,以返回相同数量的列,并且具有相同数据类型的列对。您需要确保查询返回的列符合该约束…将根据您的输入编辑问题。请参阅问题。
UNION
要求将两个查询放在一起,以返回相同数量的列,并且具有相同数据类型的列对。您需要确保查询返回的列符合该约束…将根据您的输入编辑问题。请看问题。前3个表是字符串,其他12个左右是Int。前3个表是否应该改为
CAST(changed_column as Int)as changed_column
?我按照您的建议尝试了,但改为转换为INT64。我现在得到了这个错误
Bad int64值:NULL
如果
CAST
不起作用,因为不是所有的东西都可以强制转换,请尝试
SAFE\u CAST
前3个表是string,其他12个左右是Int。它是否应该读取
CAST(将列更改为Int)如前3列所更改的
?我按照您的建议进行了尝试,但改为转换为INT64。我现在得到这个错误
错误的int64值:NULL
如果
强制转换
不起作用,因为不是所有的东西都可以强制转换,请尝试
安全强制转换