add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
CREATE TABLE YourTable (Xml1 xml, Xml2 xml);

INSERT YourTable VALUES (N'<HOME>
<VALIDITYLIST>
<VALIDITY STATE="1">
<VALIDITYTYPE>1</VALIDITYTYPE>
<GROUPCODE>DEFAULT</GROUPCODE>
<ENTRY/>
<CARD>2</CARD>
<GIFTAID/>
<VARIABLERANGE>false</VARIABLERANGE>
<DAYS>365</DAYS>
<NOTOPERATING>false</NOTOPERATING>
<VALIDITYLIST/>
<YPERESTRICTIONLIST/>
<METRALOCKERV2>
<LOCKERITEMID/>
</METRALOCKERV2>
<REQUIREDVAREXPDATE/>
</VALIDITY>
</VALIDITYLIST>
</HOME>
',
N'<HOME>
<VALIDITYLIST>
<VALIDITY STATE="1">
<VALIDITYTYPE>1</VALIDITYTYPE>
<GROUPCODE>DEFAULT</GROUPCODE>
<GIFTAID/>
<DYNAMICP/>
<VALIDITYLIST>
<VALIDITY STATE="1">
<VALIDITYTYPE>2</VALIDITYTYPE>
<EVENT>3</EVENT>
<ENTRYTYPE>2</ENTRYTYPE>
<NUMENTRY>1</NUMENTRY>
1 rows affected
SELECT *,
NewXml = (
SELECT
VALIDITYLIST = (
SELECT
ISNULL(x1.query('.'), x2.query('.'))
FROM
t.Xml1.nodes('HOME/VALIDITYLIST/VALIDITY/*[.//text()]') x1(x1)
FULL JOIN
t.Xml2.nodes('HOME/VALIDITYLIST/VALIDITY/*[.//text()]') x2(x2)
ON x2.x2.value('local-name(.)','nvarchar(30)') = x1.x1.value('local-name(.)','nvarchar(30)')
FOR XML PATH(''), ROOT('VALIDITY'), TYPE
)
FOR XML PATH(''), ROOT('HOME'), TYPE
)
FROM YourTable t;
Xml1 Xml2 NewXml
<?xml version="1.0" encoding="utf-16"?>
<HOME>
  <VALIDITYLIST>
    <VALIDITY STATE="1">
      <VALIDITYTYPE>1</VALIDITYTYPE>
      <GROUPCODE>DEFAULT</GROUPCODE>
      <ENTRY />
      <CARD>2</CARD>
      <GIFTAID />
      <VARIABLERANGE>false</VARIABLERANGE>
      <DAYS>365</DAYS>
      <NOTOPERATING>false</NOTOPERATING>
      <VALIDITYLIST />
      <YPERESTRICTIONLIST />
      <METRALOCKERV2>
        <LOCKERITEMID />
      </METRALOCKERV2>
      <REQUIREDVAREXPDATE />
    </VALIDITY>
  </VALIDITYLIST>
</HOME>
<?xml version="1.0" encoding="utf-16"?>
<HOME>
  <VALIDITYLIST>
    <VALIDITY STATE="1">
      <VALIDITYTYPE>1</VALIDITYTYPE>
      <GROUPCODE>DEFAULT</GROUPCODE>
      <GIFTAID />
      <DYNAMICP />
      <VALIDITYLIST>
        <VALIDITY STATE="1">
          <VALIDITYTYPE>2</VALIDITYTYPE>
          <EVENT>3</EVENT>
          <ENTRYTYPE>2</ENTRYTYPE>
          <NUMENTRY>1</NUMENTRY>
        </VALIDITY>
      </VALIDITYLIST>
    </VALIDITY>
  </VALIDITYLIST>
</HOME>
<?xml version="1.0" encoding="utf-16"?>
<HOME>
  <VALIDITYLIST>
    <VALIDITY>
      <VALIDITYTYPE>1</VALIDITYTYPE>
      <GROUPCODE>DEFAULT</GROUPCODE>
      <CARD>2</CARD>
      <VARIABLERANGE>false</VARIABLERANGE>
      <DAYS>365</DAYS>
      <NOTOPERATING>false</NOTOPERATING>
      <VALIDITYLIST>
        <VALIDITY STATE="1">
          <VALIDITYTYPE>2</VALIDITYTYPE>
          <EVENT>3</EVENT>
          <ENTRYTYPE>2</ENTRYTYPE>
          <NUMENTRY>1</NUMENTRY>
        </VALIDITY>
      </VALIDITYLIST>
    </VALIDITY>
  </VALIDITYLIST>
</HOME>