Я получаю внутреннюю ошибку при выполнении запроса, который в качестве особенностей включает предложение «CASE» и два разных поля в предложении «WHEN». Запрос выглядит следующим образом:
SELECT
CASE WHEN site != 'a' OR geo LIKE 'NO%' THEN "test" END
FROM elc.CpEvents_agderposten
WHERE _partitiontime BETWEEN TIMESTAMP('2014-09-24') AND TIMESTAMP('2014-09-24')
Подобные запросы работают нормально:
SELECT
CASE WHEN site != 'agderposten' OR geo LIKE 'NO%' THEN "test" END
FROM elc.CpEvents_agderposten
WHERE _partitiontime BETWEEN TIMESTAMP('2014-09-24') AND TIMESTAMP('2014-09-24')
-
SELECT
CASE WHEN geo LIKE 'NO%' THEN "test" END
FROM elc.CpEvents_agderposten
WHERE _partitiontime BETWEEN TIMESTAMP('2014-09-24') AND TIMESTAMP('2014-09-24')
-
SELECT
CASE WHEN site != 'a' AND geo LIKE 'NO%' THEN "test" END
FROM elc.CpEvents_agderposten
WHERE _partitiontime BETWEEN TIMESTAMP('2014-09-24') AND TIMESTAMP('2014-09-24')
-
SELECT
CASE WHEN site != 'a' THEN "test" WHEN geo LIKE 'NO%' THEN "test" END
FROM
elc.CpEvents_agderposten
WHERE
_partitiontime BETWEEN TIMESTAMP('2014-09-24')
AND TIMESTAMP('2014-09-24')
Я знаю, что последний пример можно использовать в качестве обходного пути для первого запроса, но его нельзя применять всегда. Например, следующий запрос также не удался:
SELECT
CASE WHEN site == 'a' and geo >= 'NO' THEN "test" END
FROM elc.CpEvents_agderposten
WHERE _partitiontime BETWEEN TIMESTAMP('2014-09-24') AND TIMESTAMP('2014-09-24')
Идентификатор задания для первого запроса: cpcd-1357:bquijob_24edf89_157ae353e1e.
И последний запрос: cpcd-1357:bquijob_1b26172b_157ae348938
Кто-нибудь знает, как избежать этой ошибки?