您可以使用CHARINDEX來查看您的標籤開始和停止,SUBSTRING得到<和>之間的所有文本,並替換以換出子字符串「」。
Select Field,
Substring(FIELD, charindex('<', Field), CHARINDEX('>', Field,
(CHARINDEX('>', FIELD)) + 1) - charindex('<', Field)+1) as ToRemove,
replace (Field, Substring(FIELD, charindex('<', Field), CHARINDEX('>',
Field, (CHARINDEX('>', FIELD)) + 1) - charindex('<', Field)+1), '')
as FinalResult
從表名
輸出將是三列,場,文檔,刪除和FinalResult,但沒有實際被更新。
我認爲這將失敗的唯一方法是如果你有嵌套標籤。 <b><i>sometext</i></b>
要真正做出改變:
Update #TableName set Field = replace (Field, Substring(FIELD, charindex('<', Field), CHARINDEX('>', Field, (CHARINDEX('>', FIELD)) + 1) - charindex('<', Field)+1), '')
測試的SQL Server 2012年
T-SQL對此是錯誤的工具。嘗試編寫一個小控制檯應用程序來讀取這些字段值,並使用RegEx或HTML解析器(如HTML敏捷包)解析它們。 –
做2個子字符串使用as參考開始和結束標記並將它們連接在一起更新 – Mihai
選中此[SO帖子](http://stackoverflow.com/questions/4341613/alternatives-to-replace-on-a-text - 或 - ntext-datatype),我認爲這將有助於.. – vmachan