Ну, возможно, вы задаете string_to_array неверные параметры. В качестве альтернативы вы можете использовать функцию POSITION, чтобы найти, есть ли совпадение sbustring.
with table_a (acol) as ( values('000;111;222'),('000;xxx;222') )
, table_b (bcol) as ( values ('111'),('xxx'),('000'),('123') )
select *
from table_a
join table_b on POSITION(bcol in acol) > 0;