Проверьте значение c в c позиции в улье - PullRequest
1 голос
/ 18 июня 2020

В Hive пытается построить logi c на основе следующей проверки критериев, но не может найти для этого решения.

критерии: если первая позиция строки начинается с 9 и имеет либо 7, либо 8 в 4-й позиции, чтобы отобразить только последние четыре цифры, иначе вернет все 9 цифр. Как выполнить sh решение?

Input       Output 
---------------------
912345678   912345678
912756431   6431
912854321   4321
123456789   123456789

1 Ответ

0 голосов
/ 18 июня 2020

Использование функции substr:

select case when substr(Input,1,1)=9 and substr(Input,4,1) in (7,8) then substr(Input,-4) else Input end as Output
  from ...

Использование rlike:

select case when Input rlike '^9\\d{2}[78]' then substr(Input,-4) else Input end as Output
...