Can we cast the type in BigQuery?

2020-02-06 04:59发布

Following my query :

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

I am getting the error as Error: Argument type mismatch in function SUBTRACT:'D_o_latitude' is type string, 'T_s_lat' is type string

So Let me know can we convert the string type to float in the query some thing like casting the data type, I can not change the datatype

2条回答
何必那么认真
2楼-- · 2020-02-06 05:25

Under legacy SQL, you can cast types in BigQuery using the following functions: INTEGER(), STRING(), BOOLEAN() TIMESTAMP(), and FLOAT().

Use cast() for standard SQL (see opensourcegeek's answer).

In your case, you could write:

SELECT SQRT((INTEGER(D_o_latitude) - T_s_lat)^2+(INTEGER(D_o_longitude) - T_s_long)^2)/0.00001 
FROM [datasetName.tableName]
查看更多
家丑人穷心不美
3楼-- · 2020-02-06 05:36

With standard SQL you can use CAST function, eg. cast(numStringColumn as int64). Look out for standard SQL type names, as they aren't exactly same as legacy SQL.

查看更多
登录 后发表回答