首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sql "FOR XML“简单部分分组

Sql "FOR XML“简单部分分组
EN

Stack Overflow用户
提问于 2012-11-10 14:15:37
回答 1查看 153关注 0票数 2

我需要在正确的方向上推动。简化的数据如下所示:

代码语言:javascript
复制
ItemId|ItemName|ObjectId|ObjectName
    1 |  Alpha |      1 |  Alpha-1
    1 |  Alpha |      2 |  Alpha-2
    2 |   Beta |      3 |   Beta-1
    2 |   Beta |      4 |   Beta-2

我的目标xml需要是:

代码语言:javascript
复制
<Root>
  <Items>
    <Item>
      <id>1</id>
      <name>Alpha</name>
    </Item>
    <Item>
      <id>2</id>
      <name>Beta</name>
    </Item>
  </Items>
  <Objects>
    <Object>
      <id>1</id>
      <item_id>1</item_id>
      <name>Alpha-1</name>
    </Object>
    <Object>
      <id>2</id>
      <item_id>1</item_id>
      <name>Alpha-2</name>
    </Object>
    <Object>
      <id>3</id>
      <item_id>2</item_id>
      <name>Beta-1</name>
    </Object>
    <Object>
      <id>4</id>
      <item_id>2</item_id>
      <name>Beta-2</name>
    </Object>
  </Objects>
</Root>

我在FOR XML语句语法方面遇到了问题,该语法允许在Items部分和Objects部分之间出现这种中断。我知道如何单独编写每个部分的代码(至少是Objects部分),但不知道如何获得堆叠的输出。我可以从这里显示的单一视图来做这件事吗?或者我需要拆分东西,然后他们以某种方式将xml重新拼接在一起?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-10 15:53:11

是的,您需要“拆分东西,然后以某种方式将xml重新拼接在一起?”您需要两个查询,一个用于项目,另一个用于对象。

这里有一种方法可以做到这一点。

代码语言:javascript
复制
declare @T table
(
  ItemId int,
  ItemName varchar(10),
  ObjectId int,
  ObjectName varchar(10)
)


insert into @T
select    1 ,  'Alpha',       1,   'Alpha-1' union all
select    1 ,  'Alpha',       2,   'Alpha-2' union all
select    2 ,   'Beta',       3,    'Beta-1' union all
select    2 ,   'Beta',       4,    'Beta-2'


select 
  (
  select ItemId as id,
         ItemName as name
  from @T
  group by ItemId, ItemName
  for xml path('Item'), root('Items'), type
  ),
  (
  select ObjectId as id,
         ItemId as item_id,
         ObjectName as name
  from @T
  for xml path('Object'), root('Objects'), type
  )
for xml path('root')
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13319821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档