声明不在bigquery中工作的情况

时间:2017-12-10 21:19:01

标签: google-bigquery

我在语句时执行以下错误消息:

No matching signature for operator CASE for argument types: BOOL, FLOAT64, 
STRING at [10:1] 

声明是:

case when a.datetime between '2015-11-01' and '2016-10-31' then 
a.i_sec_out_to_auth else 'NA' end as PY_resp,
case when a.datetime between '2016-11-01' and '2017-10-31' then 
a.i_sec_out_to_auth  else 'NA' end as CY_resp

我错过了什么。 google bigquery还没有完全处理案件呢?

请记住a.i_sec_out_to_auth是我的数据集中float类型的列。

1 个答案:

答案 0 :(得分:1)

你的代码的问题是THEN和ELSE中的预期输出是不同的数据类型(分别是FLOAT和STRING)!但它应该是一样的 请尝试以下

case when a.datetime between '2015-11-01' and '2016-10-31' then 
a.i_sec_out_to_auth else 0 end as PY_resp,
case when a.datetime between '2016-11-01' and '2017-10-31' then 
a.i_sec_out_to_auth  else 0 end as CY_resp

case when a.datetime between '2015-11-01' and '2016-10-31' then 
a.i_sec_out_to_auth else null end as PY_resp,
case when a.datetime between '2016-11-01' and '2017-10-31' then 
a.i_sec_out_to_auth  else null end as CY_resp