Допустим: значения в столбце tbl_A для соединения имеют разную длину: 5 и 10. Значения в столбце tbl_B для соединения имеют большую длину и когда объединение substr()
должно применяться в зависимости от длины значений в tble_A. Итак, я пытался применить оператор case в предложении ON при присоединении к таблицам с помощью HiveQL, и я получаю следующую ошибку:
Ошибка при компиляции инструкции: FAILED: SemanticException [Ошибка 10017]: Строка 22:3 И левый, и правый псевдонимы встречаются в JOIN '11'
Вот мой код:
select
a.fullname, b.birthdate
from mydb.tbl_A a
left join mydb.tbl_B b
on a.fullname =
case when length(a.fullname) = 5 then substr(b.othername,1,5)
when length(a.fullname)= 9 then substr(b.othername, 8, 9) end
and a.birthdate = b.birthdate
Я не мог найти много информации об этом. Ваша помощь будет высоко оценена. Спасибо.