SQL Сервер:
SELECT ExpRep, ltrim(value+')')
FROM employees
CROSS APPLY STRING_SPLIT(Attendees, ')')
WHERE RTRIM(value) <> '';
Oracle:
select ExpRep
, Attendees || ')'
from (select ExpRep
, ltrim(regexp_substr(Attendees, '[^)]+', 1, levels.column_value)) as Attendees
from test
, table(cast(multiset(select level
from dual connect by level <= length (regexp_replace(Attendees, '[^)]+')) + 1) as sys.OdciNumberList)) levels)
where Attendees is not null;
MySQL: (Действителен только для примеров, в которых у вас будет 5 разных сотрудников в столбце «Посетители». Если да, добавьте union all ...)
select
ExpRep,
concat(ltrim(SUBSTRING_INDEX(SUBSTRING_INDEX(Attendees, ')', numbers.n), ')', -1)),')') name
from (select 1 n
union all select 2
union all select 3
union all select 4
union all select 5) numbers INNER JOIN test
on CHAR_LENGTH(Attendees)
-CHAR_LENGTH(REPLACE(Attendees, ')', ''))>=numbers.n-1
where ltrim(SUBSTRING_INDEX(SUBSTRING_INDEX(Attendees, ')', numbers.n), ')', -1)) <> ''
order by
ExpRep, n
Примечание Было бы неплохо, чтобы один это пригодится вам, но в следующий раз добавьте тег используемой вами базы данных.