» »

[t-sql] for XML EXPLICIT

[t-sql] for XML EXPLICIT

borchi ::

direktno v t-sql bi rad generiral xml.

problem imam, ker shema xml-ja zahteva complexType s sekvenco, torej moram posortirat elemente po točno določenem vrstnem redu. kar je problem. bolj kot razmišljam kako deluje to, manj se mi zdi, da je sploh možno gnezdit elemente in hkrati upoštevat zapovedan sequence.

npr. z:

declare @krneki table (Ident int identity, krneki1 varchar(10), krneki2 varchar(10), krneki3 varchar(10))

insert
into @krneki
(krneki1, krneki2, krneki3)
select
'krneki1_1' as krneki1, 'krneki2_1' as krneki2, 'krneki3_1' as krneki3
union all
select
'krneki1_2', 'krneki2_2', 'krneki3_2'


select
	10	as Tag,
	null	as Parent,
	null	as [Prvi!10!],
	null	as [Drugi!20!D!hide],
	null	as [Drugi!20!krneki1!element],
	null	as [Tretji!30!T!hide],
	null	as [Tretji!30!krneki3!element],
	null	as [Drugi!20!krneki2!element]
union all
select
	20, 10, null, Ident, krneki1, null, null, krneki2
from @krneki
union all
select
	30, 20, null, Ident, null, Ident, krneki3, null
from @krneki
order by [Drugi!20!D!hide], [Tretji!30!T!hide]
for XML EXPLICIT


dobim:

<Prvi>
  <Drugi>
    <krneki1>krneki1_1</krneki1>
    <krneki2>krneki2_1</krneki2>
    <Tretji>
      <krneki3>krneki3_1</krneki3>
    </Tretji>
  </Drugi>
  <Drugi>
    <krneki1>krneki1_2</krneki1>
    <krneki2>krneki2_2</krneki2>
    <Tretji>
      <krneki3>krneki3_2</krneki3>
    </Tretji>
  </Drugi>
</Prvi>


rabim pa:

<Prvi>
  <Drugi>
    <krneki1>krneki1_1</krneki1>
    <Tretji>
      <krneki3>krneki3_1</krneki3>
    </Tretji>
    <krneki2>krneki2_1</krneki2>
  </Drugi>
  <Drugi>
    <krneki1>krneki1_2</krneki1>
    <Tretji>
      <krneki3>krneki3_2</krneki3>
    </Tretji>
    <krneki2>krneki2_2</krneki2>
  </Drugi>
</Prvi>


je kdo že delal kdaj kaj takega? sej vem, da se z napačnim orodjem spravljam k stvari, samo bi mi v bodoče prihranilo goro dela, če bi lahko vse naredil že kar v sql-u...
l'jga

borchi ::

sem vedu, da se je treba samo naspat, pol bo pa šlo...

rešitev:

select
	10	as Tag,
	null	as Parent,
	null	as [Prvi!10!],
	null	as [Drugi!20!D!hide],
	null	as [krneki1!21!],
	null	as [Tretji!30!T!hide],
	null	as [Tretji!30!krneki3!element],
	null	as [krneki2!31!]
union all
select
	20, 10, null, Ident, null, null, null, null
from @krneki
union all
select
	21, 20, null, Ident, krneki1, null, null, null
from @krneki
union all
select
	30, 20, null, Ident, null, Ident, krneki3, null
from @krneki
union all
select
	31, 20, null, Ident, null, null, null, krneki2
from @krneki
order by [Drugi!20!D!hide], Tag
for XML EXPLICIT
l'jga


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

TSQL rekurzivno

Oddelek: Programiranje
11886 (625) hamez66
»

MySQL podatki iz več tabel

Oddelek: Programiranje
5869 (659) smacker
»

Sql poizvedba

Oddelek: Programiranje
111447 (951) zgubar
»

mysql, insert, values, select

Oddelek: Programiranje
91759 (1586) slosi
»

MySQL join problem

Oddelek: Programiranje
101523 (1421) Poldi112

Več podobnih tem