按照我的查询:
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'是字符串
那么让我知道我们可以将查询中的字符串类型转换为浮点数,例如转换数据类型,我无法更改数据类型
答案 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]