web-dev-qa-db-ja.com

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」はタイプ文字列としてエラーが発生しています

クエリで文字列型を浮動小数点に変換できるかどうかを教えてくださいデータ型をキャストするなど、データ型を変更することはできません

17
Ravindra

標準SQLでは、 [〜#〜] cast [〜#〜] 関数を使用できます。 cast(numStringColumn as int64)標準SQLタイプ名 を探してください。これらはレガシーSQLとまったく同じではありません。

35
opensourcegeek

レガシー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]
17
Jordan Tigani