Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DECLARE @outlook nvarchar(max)='Something.something@email.com;Anne Hathaway < Anne.Hathaway@Email.com >; Albert Einstein < Albert.Einstein@email.com >; Ash Ketchum < Ash.Ketchum@mail.com >';
- WITH semi AS (
- SELECT CAST(NULL AS nvarchar(255)) AS part, @outlook AS remain
- UNION ALL
- SELECT CAST(LEFT(remain, CHARINDEX(';', remain+';')-1) AS nvarchar(255)),
- CAST(SUBSTRING(remain, CHARINDEX(';', remain+';')+1, LEN(remain)) AS nvarchar(max))
- FROM semi
- WHERE remain!='')
- SELECT +LEFT(addr, CHARINDEX('>', addr+'>')-1)
- FROM (
- SELECT LTRIM(SUBSTRING(part, CHARINDEX('<', part)+1, LEN(part))) AS addr
- FROM semi
- WHERE part IS NOT NULL
- ) AS sub;
- WITH semi AS (
- SELECT CAST(NULL AS nvarchar(255)) AS part, @outlook AS remain
- UNION ALL
- SELECT CAST(LEFT(remain, CHARINDEX(';', remain+';')-1) AS nvarchar(255)),
- CAST(SUBSTRING(remain, CHARINDEX(';', remain+';')+1, LEN(remain)) AS nvarchar(max))
- FROM semi
- WHERE remain!='')
- SELECT SUBSTRING(CAST((
- SELECT '; '+LEFT(addr, CHARINDEX('>', addr+'>')-1)
- FROM (
- SELECT LTRIM(SUBSTRING(part, CHARINDEX('<', part)+1, LEN(part))) AS addr
- FROM semi
- WHERE part IS NOT NULL
- ) AS sub
- FOR XML PATH(''), TYPE) AS nvarchar(max)), 3, 10000);
- SELECT STRING_AGG(RTRIM(LTRIM(REPLACE(REPLACE(b.[value], '<', ''), '>', ''))), '; ')
- FROM STRING_SPLIT(@outlook, ';') AS a
- CROSS APPLY STRING_SPLIT(a.[value], ' ') AS b
- WHERE b.[value] LIKE '%@%';
Add Comment
Please, Sign In to add comment