SQL通配符替换 - <br/>标签之间的单个字符?

时间:2016-03-25 19:41:16

标签: sql sql-server tsql

我有一个包含HTML的varchar(max)列,我需要替换换行符之间的单个字符 - <br></br>例如:<br>8</br>。问题是,该角色完全是随机的,所以我需要相当于<br>%</br>的通配符替换。如果它是单个字符,我只需要它发生,而不是它是多个字符。

因此,如果<br>#</br>我希望将其更改为<br></br>

任何想法如何实现这一目标?函数/视图/存储过程任何方法都可以。

谢谢

3 个答案:

答案 0 :(得分:0)

您可以尝试使用"this should appear"。不是SQL服务器专家,但通常是taxedItems

replace

目前还不清楚是否还有其他文字要保留。如果存在,您可能需要一些捕获组。

答案 1 :(得分:0)

以下是使用PATINDEX

解决的类似问题

Regex pattern inside SQL Replace function?

答案 2 :(得分:0)

我将使用 STUFF CHARINDEX

执行此操作

Charindex - 帮助您确定<br>

的位置

Stuff - 帮助您用空字符串替换字符

SELECT Stuff(strings, Charindex('<br>', strings) + 4, 1, '') as Result
FROM   (VALUES ('<br>8</br>'),
               ('<br>.</br>'),
               ('<br>#</br>'),
               ('<br>$</br>')) tc (strings) 

<强>结果:

Result
------
<br></br>
<br></br>
<br></br>
<br></br>