[MSSQL] 移除資料中的HTML標籤

因為系統中有使用HTML編輯器,會將HTML語法存在DB中,當要擷取其中前N個文字時,會需要先移除HTML語法,所以會需要在SQL中先移除HTML標籤

因為系統中有使用HTML編輯器,會將HTML語法存在DB中,當要擷取其中前N個文字時,會需要先移除HTML語法,所以會需要在SQL中先移除HTML標籤,因此找到以下的UDF:


CREATE FUNCTION [dbo].[fn_StripHtmlTags]
(
	@HTMLText NVARCHAR(MAX)
)
RETURNS NVARCHAR(MAX)
AS
BEGIN

	DECLARE @Start INT
	DECLARE @End INT
	DECLARE @Length INT

	SET @Start = CHARINDEX('<',@HTMLText)
	SET @End = CHARINDEX('>',@HTMLText,CHARINDEX('<',@HTMLText))
	SET @Length = (@End - @Start) + 1

	WHILE @Start > 0 AND @End > 0 AND @Length > 0
	BEGIN
		SET @HTMLText = STUFF(@HTMLText,@Start,@Length,'')
		SET @Start = CHARINDEX('<',@HTMLText)
		SET @End = CHARINDEX('>',@HTMLText,CHARINDEX('<',@HTMLText))
		SET @Length = (@End - @Start) + 1
	END

	RETURN LTRIM(RTRIM(@HTMLText))

END

參考網址:http://www.cosmocentral.com/2010/03/strip-html-tags-ms-sql/