1

我在 SQL Server 的列中有以下 xml 片段

<ul>
   <li><a id="cat" href="cat.html">Cat</a></li>
   <li><a id="dog" href="dog.html">Dog</a></li>

我想删除<li>带有标签的<a>标签id="cat"

    DECLARE @id varchar(40) =  'cat'

    UPDATE  dbo.Pref
    SET     xmlPref.modify('delete /ul/li/a[@id=sql:variable("@id")]')
    WHERE   pref    = 1

当它离开<li>时不太有效。

4

2 回答 2

2

删除表达式路径中的“a”元素并将其添加到条件中

DECLARE @id varchar(40) =  'cat'

UPDATE dbo.Pref
SET xmlPref.modify('delete //ul/li[a/@id=sql:variable("@id")]')
WHERE pref = 1

请参阅SQLFiddle上的演示

于 2013-06-17T07:48:28.860 回答
-1

在 SQL Server 中使用替换内置函数怎么样?

UPDATE dbo.Pref SET COLUMNNAME = REPLACE('要搜索的表达式','要搜索的字符串的一部分','替换字符串') WHERE ....

于 2013-06-17T07:03:37.557 回答