我在旧系统中使用此表
CREATE TABLE Tmp (Content VARCHAR(MAX)) -- Note it's VARCHAR instead of XML
GO
INSERT INTO Tmp
VALUES ('<Result><Tag>tag1</Tag></Result>')
GO
如何从表格中删除Tag
元素?我知道如果Content
为XML
,我可以使用以下sql,但它不适用于'VARCHAR'。
UPDATE tmp
SET Content.MODIFY('delete /Result/Tag[1]')
答案 0 :(得分:1)
UPDATE Tmp
SET content = REPLACE(REPLACE(content, '<Tag>', ''), '</Tag>', '')
编辑:
UPDATE Tmp
SET content =
LEFT(content, CHARINDEX('<Tag>', content) - 1) +
RIGHT(content, LEN(content) - CHARINDEX('</Tag>', content) - 5)
答案 1 :(得分:1)
@Linger激励我使用REPLACE
...
UPDATE Tmp
SET Content = Replace(Content,
CONVERT(VARCHAR(MAX), CONVERT(XML, Content).query('/Result/Tag[1]'))
,'')