2017-03-10 5 views
2

Gibt es eine Möglichkeit, Ende xml Daugther Knoten innerhalb SQL zu erzwingen? Ich muss einen bestimmten Knoten beenden und erneut öffnen. Mein Code sieht derzeit wie:XML-Knoten innerhalb von SQL: Wie erzwinge Ende Digther Knoten

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 

die Ergebnisse:

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

Ich muss ‚zwingen‘ Ende jeder Preis Schicht (zweite Schicht) nach vier subnotes und starten Sie eine neue Preislage für die nächste für vier Knoten. Die fehlenden Closing- und Opening-Tags werden hinzugefügt und im obigen Beitrag markiert.

Außerdem möchte ich mich für alle grammatikalischen Fehler entschuldigen, aber ich bin kein Eingeborener. Auch wenn diese Frage für jemanden, der es gewöhnt ist, sql zu haben, eine leichte Sache ist, würde ich wirklich eine helfende Hand hier schätzen.

Vielen Dank im Voraus und die besten Wünsche

Oto

Antwort

1

Nicht sicher, ob dies das genaue Ergebnis ist für Sie suchen, aber Sie können durch Einfügen eines NULL zu sehen ist, werden Tags

zurückgesetzt
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') 
Returns

<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

Hallo, wieder eine gute Antwort. Sie könnten [diese Frage] (http://stackoverflow.com/q/42711425/5089204) besuchen. Jemand braucht deine * read-my-XML-Funktion * dringend :-) – Shnugo

+0

Danke für deine Antwort! Ist es möglich, weitere Knoten innerhalb des Artikelknotens hinzuzufügen, die nicht im Preisknoten enthalten sind? – Oto

+0

@Oto sicher, aber ich würde eine Probe benötigen –

Verwandte Themen