これらの 2 つの文字の間およびこれらの 2 つの文字を含むすべての文字を置換または削除したい < > これらはフィールド全体で何度も発生し、行ごとにさまざまな状況で発生します
置き換えられる文字列はhtmlだと思うので、例を投稿しようとすると、サイトはそれをフォーマットとして登録しました。
置換を使用して、改行の html などの一般的な文字列をすべて削除しましたが、16 進数の色の値を使用してフィールドごとに異なるものもあります。
ありがとう!
これらの 2 つの文字の間およびこれらの 2 つの文字を含むすべての文字を置換または削除したい < > これらはフィールド全体で何度も発生し、行ごとにさまざまな状況で発生します
置き換えられる文字列はhtmlだと思うので、例を投稿しようとすると、サイトはそれをフォーマットとして登録しました。
置換を使用して、改行の html などの一般的な文字列をすべて削除しましたが、16 進数の色の値を使用してフィールドごとに異なるものもあります。
ありがとう!
DECLARE @foo TABLE(TAGS VARCHAR(MAX));
INSERT @foo VALUES('<fname>John</fname><lname>Dewey</lname>');
SELECT 1; --This will initialize @@ROWCOUNT if necessary. Might be optional depending on your query
WHILE @@ROWCOUNT > 0 BEGIN
UPDATE @foo
SET TAGS = STUFF(TAGS,CHARINDEX('<',TAGS),CHARINDEX('>',TAGS) - CHARINDEX('<',TAGS) + 1,'')
WHERE TAGS LIKE '%<%>%'
END
SELECT * FROM @foo;
結果
------------------------
JohnDewey
CREATE TABLE #html(Value NVARCHAR(MAX))
INSERT INTO #html(Value) VALUES('<ShouldBeRemoved>1 <Remove>abc<also remove>def<Take this out>ghi')
INSERT INTO #html(Value) VALUES('<ShouldBeRemoved>2 <Remove>abc<also remove>def<Take this out>ghi')
INSERT INTO #html(Value) VALUES('<ShouldBeRemoved>3 <Remove>abc<also remove>def<Take this out>ghi')
;with Cte(Value) AS (
SELECT Value FROM #html
UNION ALL
SELECT REPLACE(Value, SUBSTRING(Value, CHARINDEX('<', Value), CHARINDEX('>', Value) - CHARINDEX('<', Value) + 1),'')
FROM Cte
WHERE CHARINDEX('<', Value) != 0
)
SELECT Value FROM Cte
WHERE CHARINDEX('<', Value) = 0
OPTION (MAXRECURSION 0);
DROP TABLE #html