Это ужасный формат.Если есть шанс изменить вход, это ваше решение.Если вам приходится иметь дело с этим дерьмом (иногда нам нужно брать то, что мы получаем извне), вы можете начать с чего-то такого:
DECLARE @YourString NVARCHAR(MAX)=N'Alex.alex@cigroup.com;vito.maza@agen2.dom,vera@indus.ru;<vera@indus.it>; FRANCIS.TATA@RIZZ.COM-info@attl02.11.COM,mc.rap@wind.com/gorgo.ra13@lib.it;Lor Li Silvest [lor.Li.silvest@hotmail.it]';
- Сочетание строковых операций преобразует вашу строку вXML
SELECT CAST(CONCAT('<mail><fragment>',REPLACE(REPLACE((SELECT REPLACE(REPLACE(@YourString,';','##delimit##'),',','##delimit##') AS [*] FOR XML PATH('')),'@','</fragment><fragment>'),'##delimit##','</fragment></mail><mail><fragment>'),'</fragment></mail>') AS XML)
- это результат
<mail>
<fragment>Alex.alex</fragment>
<fragment>cigroup.com</fragment>
</mail>
<mail>
<fragment>vito.maza</fragment>
<fragment>agen2.dom</fragment>
</mail>
<mail>
<fragment>vera</fragment>
<fragment>indus.ru</fragment>
</mail>
<mail>
<fragment><vera</fragment>
<fragment>indus.it></fragment>
</mail>
<mail>
<fragment> FRANCIS.TATA</fragment>
<fragment>RIZZ.COM-info</fragment>
<fragment>attl02.11.COM</fragment>
</mail>
<mail>
<fragment>mc.rap</fragment>
<fragment>wind.com/gorgo.ra13</fragment>
<fragment>lib.it</fragment>
</mail>
<mail>
<fragment>Lor Li Silvest [lor.Li.silvest</fragment>
<fragment>hotmail.it]</fragment>
</mail>
Вам решать (или некоторым другим мазохистским SO-пользователям :-)) продолжить это.
Удачного кодирования и удачи!