代码之家  ›  专栏  ›  技术社区  ›  Omnia9

SQL中的Xquery:选择子集

  •  0
  • Omnia9  · 技术社区  · 14 年前

    给定以下xml变量:

        declare @x xml
        select @x = '<Details>
    <Description>
    <Attributes>
       <Name>A</Name>
       <Values><RecordId>1</RecordId><RecordId>2</RecordId></Values>
    </Attributes>
    <Attributes>
        <Name>B</Name>
        <Values><RecordId>3</RecordId><RecordId>4</RecordId></Values>
    </Attributes>
    </Description>
    </Details>'
    

    我正在尝试获取所有名称值及其所有记录ID。我想在一份声明中这样做。我现在有以下的。

    create table #xml (element varchar(60))
    
    insert into #xml
    select RoleDetails.item.value('(Name)[1]', 'varchar(60)')
    from 
      @x.nodes('/Details/Description/Attributes') AS RoleDetails(item)
    

    我要找的格式是:

    A 1
      2
    
    B 3
      4
    
    1 回复  |  直到 14 年前
        1
  •  0
  •   Omnia9    14 年前

    将子集保存为XML格式并允许代码进行XML操作变得更加容易。