[英]SQL XML creation using query
I am trying to generate XML file code using SQL from Database which has two columns with Duplicate Value and one column with different values.我正在尝试使用数据库中的 SQL 生成 XML 文件代码,该数据库具有两列具有重复值的列和具有不同值的一列。 I used code similar to this
我使用了类似的代码
DECLARE @SelectXML bit = 1 SELECT @XMLResult = convert(varchar(max),( SELECT distinct max(Num1) 'Num1' , max(Num2) 'Num2' ,(case when Side='1' then 'L' else 'R' end) 'Num3/Side' ,(case when Side='1' then 'L' else 'R' end ) 'Num3/Side' From(select Num1,Num2,Num3 Table1) A group by Side
DECLARE @SelectXML bit = 1 SELECT @XMLResult = convert(varchar(max),( SELECT distinct max(Num1) 'Num1' , max(Num2) 'Num2' ,(当 Side='1' 然后 'L' else ' R' end) 'Num3/Side' ,(case when Side='1' then 'L' else 'R' end ) 'Num3/Side' From(select Num1,Num2,Num3 Table1) A group by Side
FOR XML PATH(''),TYPE, ROOT('rootnode') ))
FOR XML PATH(''),TYPE, ROOT('rootnode')))
IF @SelectXML = 1 BEGIN SELECT convert(xml,@XMLResult) END Print @XMLResult
IF @SelectXML = 1 BEGIN SELECT convert(xml,@XMLResult) END 打印@XMLResult
which gives result like this这给出了这样的结果
<?xml version="1.0"?>
-<rootnode>
<Num1>200</Num1>
<Num2>260.8000</Num2>
-<Num3>
<Side>LL</Side>
</Num3>
<Num1>200</Num1>
<Num2>260.8000</Num2>
-<Num3>
<Side>RR</Side>
</Num3>
</rootnode>
I want last Num3 only one column and with Two rows like我想要最后一个 Num3 只有一列和两行
<?xml version="1.0"?>
-<rootnode>
<Num1>200</Num1>
<Num2>260.8000</Num2>
-<Num3>
<Side>L</Side>
<Side>R</Side>
</Num3>
</rootnode>
is it possible to add two rows in one column in XML with SQL query是否可以使用 SQL 查询在 XML 的一列中添加两行
You need to have another for xml subquery
for your Num3
.您需要为
Num3
设置另一个for xml subquery
。
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.