sql - 将 CAST 存储到 SQL 中的变量
问题描述
SQL 中的列具有图像格式的数据。我使用了 CAST,数据以文本形式输出,这一切都很棒。问题是该列有 HTML 标签。我正在尝试从已转换的列中删除 HTML 标记。
我创建了一个函数来删除 HTML 标记,但现在我需要在该转换列上调用该函数。
/* 将图像转换为文本 */
SELECT cast(cast(note as varbinary(max)) as varchar (max)) note
FROM NOTES
/ HTML函数/
CREATE FUNCTION [dbo].[udf_StripHTML] (@HTMLText VARCHAR(MAX))
RETURNS VARCHAR(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
GO
问题代码:
SELECT
[Col1]
,[Col2]
,[Col3]
,[Col4]
,dbo.udf_StripHTML(cast(cast(note as varbinary(max)) as varchar (max)) note)
FROM NOTES
如何使用演员表调用 HTML 函数?
解决方案
我认为这只是一个语法错误。这应该有效:
SELECT
[Col1]
,[Col2]
,[Col3]
,[Col4]
,[Note] = dbo.udf_StripHTML(cast(cast([note] as varbinary(max)) as varchar (max)))
FROM NOTES
推荐阅读
- javascript - 父路由器的中间件未在子路由器中执行
- symfony - 如果没有特定角色,则 Symfony 安全访问控制允许
- python - 在事件的边界时间合并两个数据框
- leaflet - GeoJSON FeatureCollection 与 Leaflet 的图层和图层组之间的映射存在歧义
- c# - 放大地图时出现 GMap.Net System.InvalidOperationException
- google-apps-script - 应用程序脚本在提交之前获取当前单元格值
- kotlin - 使用 Kotlin 集合操作对相同的邻居进行分组
- r - 两个矩阵/数据帧的元素级联
- git - 嵌套 for 循环中的 Shellscript 克隆存储库
- java - 是否可以在没有 schema.sql 的情况下使用 data.sql