Заменить текст внутри тегов в MSSQL - PullRequest
0 голосов
/ 04 ноября 2010

Кто-нибудь знает, возможно ли заменить текст внутри тегов.

Например ...

"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 ]

1 голос
/ 04 ноября 2010

Как сказали два других, 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>'))))

Это должно быть хорошим мотиватором для НЕ сделать это таким образом.

1 голос
/ 04 ноября 2010

Чтобы удалить эти разделы, вам нужно было бы выполнить какой-либо пользовательский анализ значения.

С точки зрения производительности, это может быть не очень хорошо, если вы делаете это в TSQL. SQLCLR может быть чем-то, что можно попробовать для этого (гораздо лучше при манипулировании строками и т. Д.), Или сделать эту замену вне SQL в вызывающем коде.

0 голосов
/ 04 ноября 2010

По мнению AdaTheDev, SQLCLR - это путь.Я быстро просмотрел Google T-SQL regex и нашел ссылку MS, которая подтверждает это на 2005 год.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...