@Naomi, Sorry the issue is not due to below sample data:
Number of Sales: <Area="XBA" Number="">0</a><XX>END
The issue is because of the this kind of data in the same field.
No Sales were happened: SPANISH<UV>END
Here is the DDL and sample data:
declare @t table (ID int identity(1,1) primary key, htmlString nvarchar(max))
insert into @t (htmlString)
values ('Number of Sales: <Area="ABC" Number="1012,1013,1014,1015">4</a><ZZ>END'),
('Number of Sales: <Area="CBA" Number="1011,1012,1013,1014,1015,1016,1017,1018,1019,1020">10</a><YY>END'),
('Number of Sales: <Area="XBA" Number="">0</a><XX>END'),
('No Sales were happened: SPANISH<UV>END')
;with cte as (
select *,
substring(htmlString, patindex('% Number="%">%', htmlString) + len(' Number="'), len(htmlString)) as OrderNumbers,
substring(htmlString, patindex('%">%', htmlString) + 2, len(htmlString)) as NumberStart
from @t)
select *,
substring(OrderNumbers, 1, PATINDEX('%">%', OrderNumbers)-1) as OrderNumbers,
substring(NumberStart, 1, PATINDEX('%</a>%', NumberStart)-1) as Number
from cte
IDOrder NumbersValues
11012,1013,1014,10154
21011,1012,1013,1014,1015,1016,1017,1018,1019,102010
3NULL 0
4 N/A N/A
Thanks for your help on this.