我有一个XML字段,我需要删除一个流氓rode。 那个流氓节点是
char[]
如何在标记的行上处理CTEScreenXML.ScreenXML字段以进行替换?
此CTE将有大约300行,因此替换需要在所有300行上工作。
答案 0 :(得分:0)
您需要为CTE中的格式化或更改列提供别名。试试这个:
With CTEScreenXML (Code, CreatedOn, ScreenXML) AS
(
SELECT GXML.Code, GXML.CreatedOn, CONVERT(NVARCHAR(MAX),GXML.ScreenXML) [ScreenXML]
From dbo.GenScreenXML GXML
WHERE CHARINDEX('<PROMPT><span/></PROMPT>',CONVERT(NVARCHAR(MAX),GXML.ScreenXML))>0
)
SELECT REPLACE(ScreenXML, '<PROMPT><span/></PROMPT>', '')) --THIS LINE
FROM dbo.CTEScreenXML
OR
SELECT GXML.Code, GXML.CreatedOn, REPLACE(CONVERT(NVARCHAR(MAX),GXML.ScreenXML), '<PROMPT><span/></PROMPT>', '') [ScreenXML]
FROM dbo.GenScreenXML GXML
WHERE CHARINDEX('<PROMPT><span/></PROMPT>',CONVERT(NVARCHAR(MAX),GXML.ScreenXML))>0ONVERT(NVARCHAR(MAX),GXML.ScreenXML))>0
答案 1 :(得分:0)