这很丑陋,但它应该可以工作。该代码基本上找到了第一个实例</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, '')