sql中的xml节点:如何强制结束其他节点

sql中的xml节点:如何强制结束其他节点,sql,xml,tsql,tags,nodes,Sql,Xml,Tsql,Tags,Nodes,是否有任何方法可以强制在sql中的其他节点使用结束xml?我需要结束并重新打开一个特定节点。我的代码当前看起来像: USE [DBNAME] Select (Select 'EK' as 'prices/price/group', XUVP as 'prices/price/price', '1' as 'prices/price/from', 'beliebig' as 'prices/price/to', '

是否有任何方法可以强制在sql中的其他节点使用结束xml?我需要结束并重新打开一个特定节点。我的代码当前看起来像:

USE [DBNAME]
Select (Select 
        'EK' as 'prices/price/group',
        XUVP as 'prices/price/price',
        '1'  as 'prices/price/from',
        'beliebig' as 'prices/price/to',
        'FH' as 'prices/price/group',
        XHEK as 'prices/price/price',
        '1'  as 'prices/price/from',
        'beliebig' as 'prices/price/to',
        'D' as 'prices/price/group',
        XDEK as 'prices/price/price',
        '1'  as 'prices/price/from',
        'beliebig' as 'prices/price/to',
        'P' as 'prices/price/group',
        XPEK as 'prices/price/price',
        '1'  as 'prices/price/from',
        'beliebig' as 'prices/price/to'             
        FOR XML Path('article'),Type,Elements)      
FROM [dbo].[TABLENAME] FOR XML PATH ('articles'), Elements, ROOT('Root')
GO
其结果是:

      <prices>
        <price>
          <group>EK</group>
          <price>459.000</price>
          <from>1</from>
          <to>beliebig</to>
  ---->   </price>
  ---->   <price> 
          <group>FH</group>
          <price>279.000</price>
          <from>1</from>
          <to>beliebig</to>            
        </price>
      </prices>

埃克
459
1.
贝利比格
---->   
---->    
跳频
279
1.
贝利比格
我需要在四个子节点之后“强制结束”每个价格层(第二层),并为下一个四个节点启动一个新的价格层。缺少的结束和开始标记被添加并标记在上面发布的result中

此外,我想为任何语法错误道歉,但我不是本地人。即使对于习惯sql的人来说,这个问题可能很简单,但我还是非常感谢您的帮助

提前感谢并致以最良好的祝愿


Oto

不确定这是否是您要查找的确切结果,但您可以通过插入空值看到,标记将重置

Declare @YourTable table (XUVP int,XHEK int,XDEK int,XPEK int)
Insert Into @YourTable values
(459,279,-999,999)

Select (Select 
        'EK' as 'price/group',
        XUVP as 'price/price',
        '1'  as 'price/from',
        'beliebig' as 'price/to',
        null,
        'FH' as 'price/group',
        XHEK as 'price/price',
        '1'  as 'price/from',
        'beliebig' as 'price/to',
        null,
        'D' as 'price/group',
        XDEK as 'price/price',
        '1'  as 'price/from',
        'beliebig' as 'price/to',
        null,
        'P' as 'price/group',
        XPEK as 'price/price',
        '1'  as 'price/from',
        'beliebig' as 'price/to'             
        FOR XML Path('prices'),Type,Elements, ROOT('article'))      
FROM @YourTable FOR XML PATH ('articles'), Elements, ROOT('Root')
返回

<Root>
  <articles>
    <article>
      <prices>
        <price>
          <group>EK</group>
          <price>459</price>
          <from>1</from>
          <to>beliebig</to>
        </price>
        <price>
          <group>FH</group>
          <price>279</price>
          <from>1</from>
          <to>beliebig</to>
        </price>
        <price>
          <group>D</group>
          <price>-999</price>
          <from>1</from>
          <to>beliebig</to>
        </price>
        <price>
          <group>P</group>
          <price>999</price>
          <from>1</from>
          <to>beliebig</to>
        </price>
      </prices>
    </article>
  </articles>
</Root>

埃克
459
1.
贝利比格
跳频
279
1.
贝利比格
D
-999
1.
贝利比格
P
999
1.
贝利比格

Hi,又是一个好答案。你可以去看看。有人非常需要你的ReadMyXML函数:-)谢谢你的回答!是否可以在文章节点中添加不在价格节点中的其他节点?@o当然可以,但我需要一个样本谢谢您的快速回答。我怎样才能给你发送一个呢?在大价格节点之后,我需要一些节点,一个类别的新母节点,其中包含一些子节点,然后在该块上再添加一些节点。