从SQL Server的SQL查询生成xml文件时无法获得所需的输出
我正在执行这个查询从SQL Server的SQL查询生成xml文件时无法获得所需的输出,sql,sql-server,xml,for-xml,Sql,Sql Server,Xml,For Xml,我正在执行这个查询 select category "ROOT/category", question "Category/question", option1 "Category/option1" from testDB2 for XML PATH ('ROOT') , ELEMENTS 目前数据库有三个条目,我得到的xml文件如下 <ROOT> <ROOT> <category>maths</category> </RO
select category "ROOT/category",
question "Category/question",
option1 "Category/option1"
from testDB2 for XML PATH ('ROOT') , ELEMENTS
目前数据库有三个条目,我得到的xml文件如下
<ROOT>
<ROOT>
<category>maths</category>
</ROOT>
<Category>
<question>2+2?</question>
<option1>1</option1>
</Category>
</ROOT>
<ROOT>
<ROOT>
<category>maths</category>
</ROOT>
<Category>
<question>100*0</question>
<option1>0</option1>
</Category>
</ROOT>
<ROOT>
<ROOT>
<category>chemistry</category>
</ROOT>
<Category>
<question>H2O?</question>
<option1>water </option1>
</Category>
</ROOT>
数学
2+2?
1.
数学
100*0
0
化学
H2O?
水
我不想要这个,我想要一个只有一个主父节点的文件,其余的作为它的子节点,每个子节点都可以是其他子节点的父节点,但是应该只有一个主父节点,在这种情况下,每一行都是一个单独的父节点,没有主节点或单个父节点
我希望我能正确地回答我的问题。谢谢试试这样的方法:
选择类别,
问题:,
选择1
来自testdb2
对于xml原始('Category')、元素、根('Categories'))
FORXMLRAW:这将为表中的每一行创建一个节点,每一列都是该节点的一个属性
对于xmlraw('user'):这与xmlraw相同,但需要指定节点的名称
对于xml原始(“用户”)元素:可以从属性视图切换到节点视图。每列都将是行节点中的一个节点
root('Users'):您可以使用它来命名父根
希望这对您有所帮助我认为您希望使用来塑造您的输出。不是100%确定您真正想要的是什么,但是这个怎么样:
SELECT
category '@Name',
question "Category/question",
option1 "Category/option1"
FROM
dbo.testDB2
FOR XML PATH('Category'), ROOT('ROOT')
这是不是更接近你想要的?如果我没有弄错(现在无法测试),这将为您提供如下信息:
<ROOT>
<Category Name="maths">
<question>100*0</question>
<option1>0</option1>
</Category>
<Category Name="chemistry">
<question>H2O?</question>
<option1>water </option1>
</Category>
</ROOT>
100*0
0
H2O?
水
如果没有-你能发布一些数据样本行,以及你希望从你的选择中得到什么
Marc您好,似乎有问题,我对问题的完整描述没有发布。很抱歉,我无法确定如何将我从该查询中获得的结果发布在此页面上,如果您能找出我遇到的问题,那将非常好,否则,我会要求人们删除这篇文章,这样我就可以用不同的方式再次讲述它。您可以使用XML上的“代码示例”按钮,使它在将来的问答中出现。