替换MSSQL中的标记内的文本

时间:2010-11-04 15:15:43

标签: sql sql-server tsql

有没有人知道是否可以替换标签内的文字。

例如......

If I had a row that contains this text, I would want this text to be outputted but I would want <hidden>This text to not be selected</hidden>

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

您需要对值进行某种形式的自定义解析才能删除这些部分。

性能方面,如果你在TSQL中这样做可能不是很好。 SQLCLR可能是为此尝试的东西(在字符串操作等方面要好得多),或者在调用代码中完全替换SQL之外。

答案 1 :(得分:1)

正如其他两位所说,T-SQL并不是最好的方法。如果你真的想要,你可以做一些像:

DECLARE @String varchar(1000)

SET @String = 'If I had a row that contains this text, I would want this text to be outputted but I would want <hidden>This text to not be selected</hidden>'

SELECT LEFT(@string, (CHARINDEX('<Hidden>',@string)-1)) + (RIGHT(@string, ((LEN(@String) -(CHARINDEX('</Hidden>', @String))))+1-(LEN('</hidden>'))))

这应该是 NOT 这样做的好动力。

答案 2 :(得分:0)

根据AdaTheDev,似乎SQLCLR是要走的路。我在T-SQL regex做了一个快速谷歌,并发现了一个确认2005年的MS链接。