Ich versuche, eine Tabelle in eine XML-Struktur umzuwandeln, und eine der Spalten in meiner Tabelle soll einen übergeordneten Knoten und die andere Spalte einen untergeordneten Knoten darstellen.SQL-Tabelle in XML mit Spalte als übergeordnetem Knoten transformieren
Ich habe einen Teil des Weges, aber ich habe nicht die komplette Lösung. Ich brauche die Spalte TABLE_NAME, die in einen übergeordneten XML-Knoten transformiert werden soll, und die Spalte COLUMN_NAME, die als untergeordnete Knoten transformiert werden soll. Wenn ich Folgendes ausführe, bekomme ich die Verschachtelung, aber ich bekomme auch mehrere Elternknoten.
select
TABLE_NAME AS 'tn',
COLUMN_NAME AS 'tn/cn'
from (
select 'TABLE_A' AS TABLE_NAME, 'COLUMN_1' AS COLUMN_NAME
UNION ALL
select 'TABLE_A' AS TABLE_NAME, 'COLUMN_2' AS COLUMN_NAME
UNION ALL
select 'TABLE_B' AS TABLE_NAME, 'COLUMN_1' AS COLUMN_NAME
UNION ALL
select 'TABLE_B' AS TABLE_NAME, 'COLUMN_2' AS COLUMN_NAME
) x
for xml path(''), ROOT('datatable')
OUPUT >>>
<datatable>
<tn>TABLE_A<cn>COLUMN_1</cn></tn>
<tn>TABLE_A<cn>COLUMN_2</cn></tn>
<tn>TABLE_B<cn>COLUMN_1</cn></tn>
<tn>TABLE_B<cn>COLUMN_2</cn></tn>
</datatable>
SOLL OUTPUT >>>
<datatable>
<TABLE_A>
<cn>COLUMN_1</cn>
<cn>COLUMN_2</cn>
</TABLE_A>
<TABLE_B>
<cn>COLUMN_1</cn>
<cn>COLUMN_2</cn>
</TABLE_B>
</datatable>
Ist das möglich oder träume ich? und ist es möglich, ohne XML EXPLICIT oder ist das die Art von etwas, für das EXPLICIT da ist?
Die andere Möglichkeit, die ich versucht habe, ist, das xml zu stopfen und dann eine xquery anzuwenden, aber keine Freude damit noch.
Danke,
Gary
@Gary, welcher Dialekt von SQL (Ora Cle, SQLServer, MySQL usw.) benutzen Sie? Einige von ihnen haben Dialekt-spezifische Erweiterungen für die Handhabung von XML. –
Hallo Mark, ich benutze die M $ SQL Server 2008 R2, Standard Edition –
Haben Sie erwogen, in XML zu exportieren und dann eine XSL-Transformation darauf auszuführen? –