Я использую SQL Server 2008 R2, но я получаю доступ к этому серверу через SQL Server 2012 Management Studio.
У меня есть таблица с именем Search
со столбцом Body
типа (nvarchar(Max), not null)
.
Данные в этом столбце на самом деле являются основным текстом сообщений электронной почты, и в этом столбце все HTML-теги хранятся как часть текста.
Например, в теле письма будет показано:
Good morning
This invoice has been assigned.
Но когда он хранится в столбце с именем Body
, он выглядит так:
[size=14.0pt]Good morning
[/size][size=14.0pt]This invoice has been assigned.[/size]
У меня есть следующий SQL, чтобы удалить все между "[" и "]" (включая скобки):
SELECT
*,
CASE
WHEN CHARINDEX('[', Body) > 0 AND CHARINDEX(']', Body) > 0
AND CHARINDEX('[', Body) < CHARINDEX(']', Body)
THEN STUFF(Body, CHARINDEX('[', Body), (CHARINDEX(']', Body) - CHARINDEX('[', Body)) + 1, '')
ELSE Body
END AS Body1
FROM search
Но все, что это делает, это удаляет первый набор тегов, который теперь выглядит следующим образом:
Good morning
[/size][size=14.0pt]This invoice has been assigned.[/size]
Можете ли вы помочь мне с моим SQL, чтобы он удалил их все, чтобы он выглядел так:
Good Morning
This invoice has been assigned.