使用查询创建sqlxml
我正在尝试使用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只有一列和两行,如使用查询创建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/侧”,并分组
<?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