【发布时间】:2017-05-07 23:14:57
【问题描述】:
我正在使用 Google BigQuery(不使用 LegacySQL),我目前正在尝试将字符串 cast() 为 float64。每次我收到错误“Bad double value”。我也尝试过 safe_cast() 但它完全消除了我的一些 id(例如:如果一个客户在 3 个不同的日期重复 3 次,并且对于单个“Height”条目只有“null”,那么该客户在之后被完全消除我做的是 safe_cast(),而不仅仅是具有“null”值的行)。我的数据中没有任何奇怪的字符串值,只有整数或有理数或空条目。
这是我当前的代码:
select id, date,
cast(height as float64) as height,
cast(weight as float64) as weight
from (select id, date, max(height) as height, max(weight) as weight
from table
group by 1,2
)
group by 1, 2
【问题讨论】:
-
身高和体重(字符串)是什么样的?我能想到有问题的字符串;例如
NaN或 BigQuery 可能会拒绝的所谓的“次正常”双精度值(小于 1E-308)。更不用说像“REALLY TALL”这样的高度字符串值了:-)
标签: sql string casting google-bigquery