2010-11-04 149 views
0

有谁知道是否可以替换标记内的文本。替换MSSQL中标记内的文本

例如...

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>

任何想法?

+0

你的意思是你想替换两个隐藏标签之间的文本吗? – DForck42 2010-11-04 15:37:37

回答

1

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

性能方面,如果您在TSQL中执行,性能可能并不好。 SQLCLR可能会尝试这个(更好的字符串操作等),或者在调用代码中完全在SQL之外进行替换。

0

按照AdaTheDev,似乎SQLCLR是要走的路。我在T-SQL regex上做了一个快速谷歌,并且出现了一个确认它为2005的MS链接。

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>')))) 

这应该是一个很好的激励,以做这种方式。