【问题标题】:Checking if an XML node exists in an XML variable on SQLServer检查 SQLServer 上的 XML 变量中是否存在 XML 节点
【发布时间】:2021-04-18 18:15:46
【问题描述】:

我在 SQLServer 2016 上有一个 XML 变量 @XMLContent,我想查找节点 <COLOR> 是否存在于根节点 <PRODUCT> 中。请注意<PRODUCT> 可能包含多个<COLOR>

DECLARE @XMLContent XML;
SET @XMLContent = '<PRODUCT><PRICE>9.99</PRICE><QUANTITY>28</QUANTITY><COLOR>BLUE</COLOR><COLOR>RED</COLOR></PRODUCT>'

对于上面的@XMLContent

,条件应该返回 TRUE
SET @XMLContent = '<PRODUCT><PRICE>34.99</PRICE><QUANTITY>7</QUANTITY></PRODUCT>'

应该返回 FALSE

编写该条件的最有效方法是什么?我可以在这种特定情况下使用.exist 吗?

【问题讨论】:

    标签: sql-server xml


    【解决方案1】:

    是的,使用 .exists 你甚至可以检查 XML 中的值标签,例如

    DECLARE @XMLContent XML;
    SET @XMLContent = '<PRODUCT><PRICE>9.99</PRICE><QUANTITY>28</QUANTITY><COLOR>BLUE</COLOR><COLOR>RED</COLOR></PRODUCT>'
    IF (@XMLContent.exist('/PRODUCT[COLOR="RED"]')=1)
    BEGIN
      SET @XMLContent = '<PRODUCT><PRICE>34.99</PRICE><QUANTITY>7</QUANTITY></PRODUCT>' 
    END
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-08
      • 1970-01-01
      相关资源
      最近更新 更多