Sql-Server
合併兩個 XML 變數 - 請幫助!
我正在使用帶有 SQL Server 2016 Service Pack 2 (SP2) 的 SQL Server Management Studio 17.9.1。
沒有表結構可以展示,只有兩個包含 XML 的XML 變數,如下圖:
DECLARE @A XML = ' <ManageByCountry> <CountriesAllowed> <Country name="United States" countrycode="US" /> <Country name="Canada" countrycode="CA" /> </CountriesAllowed> </ManageByCountry> ', @B XML = ' <ManageByCountry> <CountriesAllowed> <Country name="United Kingdom" countrycode="GB" /> <Country name="Puerto Rico" countrycode="PR" /> <Country name="France" countrycode="FR" /> </CountriesAllowed> </ManageByCountry> ';
我正在尋找可以輸出以下內容的語句:
<ManageByCountry> <CountriesAllowed> <Country name="United States" countrycode="US" /> <Country name="Canada" countrycode="CA" /> <Country name="United Kingdom" countrycode="GB" /> <Country name="Puerto Rico" countrycode="PR" /> <Country name="France" countrycode="FR" /> </CountriesAllowed> </ManageByCountry>
我對查詢 XML 的了解不是很好,我不知道在哪里首先搜尋如何實現這一點。
使用query()從兩個變數中獲取 Country 節點,並使用for xml 路徑來重建 XML。
select @A.query('/ManageByCountry/CountriesAllowed/Country'), @B.query('/ManageByCountry/CountriesAllowed/Country') for xml path('CountriesAllowed'), root('ManageByCountry');