我们可以在BigQuery中转换类型吗?

时间:2014-04-05 10:31:09

标签: google-bigquery

按照我的查询:

  

SELECT SQRT((D_o_latitude - T_s_lat)^ 2 +(D_o_longitude - T_s_long)^ 2)/0.00001 FROM [datasetName.tableName]

我收到错误错误:功能中的参数类型不匹配SUBTRACT:' D_o_latitude'是字符串类型,' T_s_lat'是字符串

那么让我知道我们可以将查询中的字符串类型转换为浮点数,例如转换数据类型,我无法更改数据类型

2 个答案:

答案 0 :(得分:30)

使用标准SQL,您可以使用CAST函数,例如。 cast(numStringColumn as int64)。请注意standard SQL type names,因为它们与旧SQL不完全相同。

答案 1 :(得分:18)

在旧版SQL下,您可以使用以下函数在BigQuery中转换类型:INTEGER()STRING()BOOLEAN() TIMESTAMP()FLOAT()

对标准SQL使用cast()(参见opensourcegeek的答案)。

在你的情况下,你可以写:

SELECT SQRT((INTEGER(D_o_latitude) - T_s_lat)^2+(INTEGER(D_o_longitude) - T_s_long)^2)/0.00001 
FROM [datasetName.tableName]