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
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.
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]