2014-04-05 12 views
9

Po moim zapytaniu:Czy możemy rzucić typ w BigQuery?

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

otrzymuję błąd jako błąd: argument type niedopasowania funkcja odjąć: „D_o_latitude” jest typu ciąg „T_s_lat” jest typu ciąg

więc niech mi znać puszkę możemy przekonwertować string typu float w zapytaniu niektóre rzeczy jak odlewania typ danych, nie mogę zmienić typ danych

Odpowiedz

13

Zgodnie z dotychczasowymi SQL, można oddać typów w BigQuery za pomocą następujących funkcji: INTEGER(), STRING(), BOOLEAN()TIMESTAMP(), i FLOAT().

Użyj metody cast() dla standardowego SQL (patrz odpowiedź opensourcegeek).

W twoim przypadku, można napisać:

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

Działa to tylko w przypadku starszego kodu SQL BigQuery, a nie ich najnowszego standardowego kodu SQL. Użyj CAST, jak opisano poniżej dla standardowego SQL. – Praxiteles