Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sqlserver中的XML_Sql_Sql Server_Xml - Fatal编程技术网

sqlserver中的XML

sqlserver中的XML,sql,sql-server,xml,Sql,Sql Server,Xml,我正在尝试从SQLServer数据构建一个XML文件。我有以下代码: select (select 'White' as Color1, 'Blue' as Color2, 'Black' as Color3, 'green' as Color4 for XML Path ('Colors'), type), (select 'Apple' as Fruit1, 'Grapes' as Fruit2, 'Pinapple' as Fruit3, 'Melon' a

我正在尝试从SQLServer数据构建一个XML文件。我有以下代码:

 select (select 'White' as Color1,
 'Blue' as Color2,
 'Black' as Color3, 
  'green' as Color4 
   for XML Path ('Colors'), type),
  (select 'Apple' as Fruit1,
 'Grapes' as Fruit2,
 'Pinapple' as Fruit3, 
 'Melon' as Fruit4 
  for XML Path ('Fruits'), type)

  For XML Path (''), root ('SampleXML')
  go
此代码生成以下输出:

<SampleXML>
  <Colors>
   <Color1>White</Color1>
   <Color2>Blue</Color2>
   <Color3>Black</Color3>
   <Color4>green</Color4>
 </Colors>
 <Fruits>
  <Fruit1>Apple</Fruit1>
  <Fruit2>Grapes</Fruit2>
  <Fruit3>Pinapple</Fruit3>
  <Fruit4>Melon</Fruit4>
 </Fruits>
</SampleXML>

白色
蓝色
黑色
绿色
苹果
葡萄
苹果树
甜瓜
我的目的是得到这样的输出,我想我无法添加更多的元素

 <SampleXML>
 <ColorsandFruits>
    <Colors>
      <Color1>White</Color1>
      <Color2>Blue</Color2>
      <Color3>Black</Color3>
      <Color4>green</Color4>
   </Colors>
   <Fruits>
    <Fruit1>Apple</Fruit1>
    <Fruit2>Grapes</Fruit2>
    <Fruit3>Pinapple</Fruit3>
    <Fruit4>Melon</Fruit4>
    </Fruits>
  </ColorsandFruits>
  <ColorsandFruitsNumber2>
  <Colors>
    <Color1>White</Color1>
    <Color2>Blue</Color2>
    <Color3>Black</Color3>
    <Color4>green</Color4>
  </Colors>
  <Fruits>
    <Fruit1>Apple</Fruit1>
    <Fruit2>Grapes</Fruit2>
    <Fruit3>Pinapple</Fruit3>
    <Fruit4>Melon</Fruit4>
  </Fruits>
 </ColorsandFruitsNumber2>
 </SampleXML>

白色
蓝色
黑色
绿色
苹果
葡萄
苹果树
甜瓜
白色
蓝色
黑色
绿色
苹果
葡萄
苹果树
甜瓜
不要那样做

下面这样的结构就足够了:

<Fruits>
    <Fruit>Apple</Fruit>
    <Fruit>GrapesFruit>
    <Fruit>Pineapple</Fruit>
</Fruits>
有编号的元素是非常糟糕的设计。如果你真的需要这些数字,你可以考虑

<Fruits>
    <Fruit nr="1">Apple</Fruit>
    <Fruit nr="2">GrapesFruit>
    <Fruit nr="3">Pineapple</Fruit>
</Fruits>

苹果
葡萄果实>
菠萝
这个也一样

<ColorsandFruitsNumber2>

别再那样做了!您的数据将具有某种分组键。使用此分组键标记具有属性的组

<ColorsandFruitsNumber groupkey="2">

您将找到许多示例,说明如何使用
FOR XML PATH
构建嵌套XML。我会避免使用
AUTO
,因为你必须依靠引擎为你构建结构


如果这对您没有帮助,请提供示例数据(表格格式,或者更好的是,作为带有
声明表格
插入到
的小脚本)和预期输出。

您是否尝试过使用XML自动元素?如果您将查询重新配置为使用联接,它应该按照您的预期使用多个元素格式化xml。我会努力的。谢谢你,Shnugo!我在问题中添加了预期输出和脚本。@user7675421您的预期输出和脚本并不能真正解释您的需要。在现实生活中,你永远不会对一些硬编码的水果名称使用
SELECT
,对吗?你的预期产出在结构上是绝对错误的。我真的希望,这不是你真正想要实现的输出。。。数据来自哪里?嗨,Shnugo,不,这只是一个样本,我想这会很有帮助。我将在几分钟内发布代码和实际示例数据。谢谢Shi Shnugo,很抱歉我还没有开始。@user7675421这个问题解决了吗?你需要进一步的帮助吗?请允许我一个提示:如果这个问题得到解决,您将非常感谢,在(最佳)答案的投票柜台下方勾选接受检查。这将1)将此问题标记为已解决2)使追随者更容易找到最佳解决方案3)向回答者支付积分,4)向您支付积分。因为你自己已经越过了15点的边界,你被要求对捐款进行投票。这就是说谢谢的方式。快乐编码!
<ColorsandFruitsNumber groupkey="2">