BigQuery字符串比较提供查询失败错误:意外。请再试一次

时间:2014-01-01 19:12:12

标签: google-bigquery

我有一个简单的查询:

SELECT IF(production_center='production center 1',total_sales_less_taxes,0)
     as PC1_sales FROM ...

此命令失败,查询失败错误:意外。

取决于字符串'production center 1'

的值

例如,如果我将该字符串更改为'NYC'(也在数据库中作为production_center值),则会失败。如果我将“生产中心1”更改为“生产中心”,它就会失败,但如果我将其更改为“生产中心xyzzy”就可以了。

故障模式没有任何模式。

我正在使用的工作是将production_center = ...替换为 production_center CONTAINS'....'

工作正常。

1 个答案:

答案 0 :(得分:1)

  1. 如果您使用LIMIT,那么这可能是问题的根源 - 将其插入到最后
  2. 尝试其他订单声明。
  3. 检查条件(production_center ='生产中心1')为真时的计算结果。也许问题出在total_sales_less_taxes上。
  4. 这是工作示例(公共莎士比亚数据库):

    SELECT IF(corpus='comedyoferrors',corpus_date,0), corpus 
    FROM [publicdata:samples.shakespeare] 
    WHERE corpus IN('comedyoferrors', '1kinghenryiv')
    

    OR Big Query中的错误。我发现如果我用word_count替换corpus_date那么它就失败了。但是如果我在条件中使用较早的字段(用词替换语料库)那么就可以了:

    SELECT word, IF(word='ACT',word_count,0), corpus 
    FROM [publicdata:samples.shakespeare] 
    WHERE corpus IN('comedyoferrors', '1kinghenryiv')
    

    因此,字段的顺序很重要。