使用查询创建sqlxml

使用查询创建sqlxml,sql,sql-server,xml,Sql,Sql Server,Xml,我正在尝试使用SQL从数据库中生成XML文件代码,该数据库有两个具有重复值的列 和一个具有不同值的列。我使用了与此类似的代码 声明@SelectXML bit=1选择@XMLResult=convertvarcharmax,选择distinct maxNum1'Num1' ,maxNum2'Num2' ,当Side='1'然后是'L'时的情况 其他“R”端“Num3/侧” ,当Side='1'然后是'L'时的情况 否则,从Num1、Num2、Num3表1中选择“R”结束“Num3/侧”,并分组

我正在尝试使用SQL从数据库中生成XML文件代码,该数据库有两个具有重复值的列 和一个具有不同值的列。我使用了与此类似的代码

声明@SelectXML bit=1选择@XMLResult=convertvarcharmax,选择distinct maxNum1'Num1' ,maxNum2'Num2' ,当Side='1'然后是'L'时的情况 其他“R”端“Num3/侧” ,当Side='1'然后是'L'时的情况 否则,从Num1、Num2、Num3表1中选择“R”结束“Num3/侧”,并分组

对于XML路径,键入根“rootnode”

如果@SelectXML=1开始选择convertxml,@XMLResult结束打印 @XMLResult

结果是这样的

我希望最后一个Num3只有一列和两行,如

<?xml version="1.0"?>

-<rootnode>

<Num1>200</Num1>

<Num2>260.8000</Num2>


-<Num3>

<Side>L</Side>

<Side>R</Side>

</Num3>

</rootnode>
是否可以使用SQL查询在XML中的一列中添加两行

您需要为Num3使用另一个for XML子查询


在提问时,您需要提供一个最小的、可重复的示例。请参考以下链接:请提供以下内容:1 DDL和示例数据填充,即创建表加插入语句。2您需要做什么,即逻辑,以及您的代码实现。3基于样本数据的期望输出。
<?xml version="1.0"?>

-<rootnode>

<Num1>200</Num1>

<Num2>260.8000</Num2>


-<Num3>

<Side>L</Side>

<Side>R</Side>

</Num3>

</rootnode>
DECLARE @XMLResult varchar(max)
DECLARE @SelectXML bit = 1 
SELECT @XMLResult = convert(varchar(max)
    ,( SELECT max(Num1) 'Num1' 
    , max(Num2) 'Num2' 
    , (select 
         max(case when t.Side='1' then 'L' else 'R' end) 'Side'
         From Table1 t
         Where t.Num1 = max(A.Num1) or t.Num2 = max(A.Num2)
         Group by t.Num1, t.Num2
        FOR XML PATH(''), TYPE) 'Num3'
    From Table1 A 

FOR XML PATH(''),TYPE, ROOT('rootnode') ))

IF @SelectXML = 1 BEGIN SELECT convert(xml,@XMLResult) END Print @XMLResult