Без использования функции split
результат будет выглядеть следующим образом:
cod_cust status
1023 01101011100
2209 01101011100
Таким образом, задача состоит в том, чтобы найти первую подпоследовательность 1
, которая может быть решена с помощью regexp_extract
. Также вы можете использовать IF
вместо CASE
:
SELECT cod_cust,
regexp_extract(reverse(concat_ws('', collect_list(if((acc_status='Dormant'), '1', '0'))), '1+', 0) first_element
status
FROM account_status
GROUP BY cod_cust;