2017-03-10 10 views
2

sql内にend xml daugtherノードを強制する方法はありますか?特定のノードを終了して、再度開く必要があります。私は4 subnotes後に各価格層(第2層)の力の終了」する必要がありsql内のxmlノード:daugtherノードを強制終了する方法

 <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> 

と、次のための新しい価格層を起動します。

になり
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 

:私のコードは、現在のようになります。 4つのノードに対して。欠落している終了タグと開始タグが追加され、上に掲載されたリストア内にマークされます。

さらに、文法上の誤りについてお詫びしたいと思いますが、私はネイティブではありません。この質問がSQLに慣れた人にとっては簡単なことかもしれませんが、ここでは喜んでいただけると思います。

事前のおかげで、最高の

大塔

答えて

1

ない、これはあなたが探している正確な結果ですが、NULLを挿入することで見ることができれば、タグが

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> 
+0

こんにちは、再び良い答え。あなたは[この質問](http://stackoverflow.com/q/42711425/5089204)にアクセスするかもしれません。誰かがあなたの*読み込み私のXML関数* :-)の悪い必要があります – Shnugo

+0

あなたの答えをありがとう!物品ノード内に価格ノード内にない他のノードを追加することは可能ですか? – Oto

+0

@O確かに、サンプルが必要です –

関連する問題