Условное выполнение запроса в Hive - PullRequest
0 голосов
/ 25 марта 2020

У нас есть условное выполнение запросов в Hive?

Мне нужно объединить две таблицы, TAB_A и TAB_B. Когда TAB_A.date1 <= TAB_B.date2, затем выберите данные из TAB_A, иначе, если TAB_B.flag = 'V', затем выберите данные из TAB_A, иначе выберите данные из TAB_B.

Я пробовал оператор case, как упомянуто ниже, но он не работал, выдавая ошибку: "Ошибка при компиляции оператора: FAILED: строка ParseException 7: 0 не может распознать ввод вблизи 'ELSE' '(' 'b' в спецификации выражения "

SELECT 
CASE 
WHEN ((b.id is NULL) OR (b.flag = 'O' and a.date1 <= b.date1)
OR (b.flag = 'V'))
then 
(a.id, a.date1,a.country,a.plt,'O')
else 
(b.id,b.date1,b.country,b.plt,b.flag)
END (as id,as date1,as country,as plt,as flag)
from TAB_A a JOIN TAB_B b on a.id=b.id
where a.date1 is NOT NULL;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...