web-dev-qa-db-fra.com

Pouvons-nous caster le type dans BigQuery?

Suite à ma requête:

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

J'obtiens l'erreur sous la forme Erreur: non-concordance du type d'argument dans la fonction SUBTRACT: 'D_o_latitude' est une chaîne de type, 'T_s_lat' est une chaîne de type

Donc, faites-moi savoir que nous pouvons convertir le type de chaîne pour flotter dans la requête quelque chose comme la conversion du type de données, je ne peux pas changer le type de données

17
Ravindra

Avec SQL standard, vous pouvez utiliser la fonction CAST , par exemple. cast(numStringColumn as int64). Recherchez noms de type SQL standard , car ils ne sont pas exactement les mêmes que les anciens SQL.

35
opensourcegeek

Sous SQL hérité, vous pouvez convertir des types dans BigQuery à l'aide des fonctions suivantes: INTEGER(), STRING(), BOOLEAN()TIMESTAMP() et FLOAT().

Utilisez cast () pour SQL standard (voir la réponse de opensourcegeek).

Dans votre cas, vous pourriez écrire:

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