我有一个简单的查询:
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'....'
工作正常。
答案 0 :(得分:1)
这是工作示例(公共莎士比亚数据库):
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')
因此,字段的顺序很重要。