Как убрать все вхождения сочетания символов из строки SQL?

Как убрать все вхождения %_AA% из строки в MSSQL?

Что есть:

1 NBC1,NBC2,NAA1,NAA6  
2 NAA2  
3 NMA1,NAA4,NAA2,ABC1

Что должно быть:

1 NBC1,NBC2  
2   
3 NMA1,ABC1

Написала запрос

CASE
WHEN qwe LIKE ‘%_AA%’ THEN
REPLACE(qwe,SUBSTRING(qwe,PATINDEX(‘%ZZ%’,qwe)-1,5),’’) 
ELSE qwe 
END

но он убирает только первое вхождение, второе-третье остаётся. Как сделать лучше?


Ответы (1 шт):

Автор решения: Akina
UPDATE test
SET csv = ( SELECT STRING_AGG(value, ',')
            FROM STRING_SPLIT(test.csv, ',')
            WHERE value NOT LIKE '_AA_' );

fiddle

→ Ссылка