醜いですが、うまくいくはずです。コードは基本的に の最初のインスタンスを見つけ、</p>
その右側にあるすべてのものを取得します。また、最初<p>
に見つかったものを置き換えて、その左側にあるすべてのものを取得します。
DECLARE @x nvarchar(100)
SET @x = '<p>test test 1</p> <p>this is a test 2</p> <p>this is a test 3</p>'
SELECT REPLACE(LEFT(@x, charindex('</p>', @x) - 1), '<p>', '') +
RIGHT(@x, len(@x) - charindex('</p>', @x) - 3)
SET @x = '<p>1</p>'
SELECT REPLACE(LEFT(@x, charindex('</p>', @x) - 1), '<p>', '') +
RIGHT(@x, len(@x) - charindex('</p>', @x) - 3)
これは次のように返されます。
test test 1 <p>this is a test 2</p> <p>this is a test 3</p>
と
1
編集:
この質問 hereに基づいて、どうですか:
SELECT STUFF(STUFF(@x, CHARINDEX('</p>', @x), 4, ''),
CHARINDEX('<p>', @x), 3, '')