-- mockup test data
declare @subscriptions table
(
SubscriptionID uniqueidentifier not null,
LastStatus nvarchar(260) null
);
-- insert test records
insert into @subscriptions
select newid(), 'bozo.theclown@wringley.com looking for more info';
insert into @subscriptions
select newid(), 'send email to @Oleg;a@b.com;z@x.co; please';
insert into @subscriptions
select newid(), null;
insert into @subscriptions
select newid(), 'justemail@somewhere.com';
-- here is the final select (uncomment commented line and modify as needed)
with records (SubscriptionID, LastStatus) as
(
select
SubscriptionID,
cast('
' + replace(replace(LastStatus, ';', ' '), ' ', '
') +
'
' as xml) LastStatus
from @subscriptions
)
--insert into some_db..some_schema.some_table (some_column_list)
select
records.SubscriptionID, x.LastStatus
from records cross apply
(
select
item.value('text()[1]', 'varchar(50)') LastStatus
from records.LastStatus.nodes('//r') R(item)
) x
where
x.LastStatus like '_%@_%._%';
-- The above returns something like this for data above:
SubscriptionID LastStatus
------------------------------------ --------------------------
686F0498-2BD6-4032-84A9-53AFCC60DF8C bozo.theclown@wringley.com
673DD0B4-1F41-4417-9709-79863BB32089 a@b.com
673DD0B4-1F41-4417-9709-79863BB32089 z@x.co
2DE37EA7-5243-4F48-B351-BB424B40A99F justemail@somewhere.com
Oleg
with records (SubscriptionID, LastStatus, ReportName, ModifiedDate, LastRunTime) as ( select s.SubscriptionID, cast('' + replace(replace(s.LastStatus, ';', ' '), ' ', '') + '' as xml) LastStatus, cat.ReportName, s.ModifiedDate, s.LastRunTime from dbo.Subscriptions s inner join dbo.Catalog cat on s.Report_OID = cat.ItemID ) insert into DMReport.dbo.TBL_ManageSubscriptions ( SubscriptionID, LastStatus, ReportName, ModifiedDate, LastRunTime ) select records.SubscriptionID, x.LastStatus, records.ReportName, records.ModifiedDate, records.LastRunTime from records cross apply ( select item.value('text()[1]', 'varchar(50)') LastStatus from records.LastStatus.nodes('//r') R(item) ) x where x.LastStatus like '_%@_%._%';
No one has followed this question yet.