2014-04-05 5 views
9

Nach meiner Anfrage:Können wir den Typ in BigQuery umwandeln?

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

ich den Fehler als Fehler beim Abruf: Argument Typenkonflikt in Funktion SUBTRAHIEREN: ‚D_o_latitude‘ Typ String ist, ‚T_s_lat‘ ist Typ string

Lassen Sie mich also wissen können, wir wandeln der String-Typ soetwas wie Gießen den Datentypen in der Abfrage zu schweben, kann ich nicht den Datentyp ändern

Antwort

13

Unter Vermächtnis SQL, Sie Typen in BigQuery mit den folgenden Funktionen werfen können: INTEGER(), STRING(), BOOLEAN()TIMESTAMP(), und FLOAT().

Verwenden Sie cast() für Standard-SQL (siehe Antwort opensourcegeek).

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

Dies funktioniert nur für Legacy SQL von BigQuery, nicht ihre neueste Standard SQL. Verwenden Sie CAST wie unten für Standard SQL beschrieben. – Praxiteles

14

Mit Standard-SQL Sie CAST Funktion verwenden können, zum Beispiel:

In Ihrem Fall könnten Sie schreiben. cast(numStringColumn as int64). Achten Sie auf standard SQL type names, da sie nicht identisch mit denen von Legacy-SQL sind.