Avatar billede kxh Nybegynder
13. december 2007 - 20:27 Der er 2 kommentarer og
1 løsning

XML count

Hej

Jeg har et felt i min database som indeholder xml - dette xml
indeholder f.eks

<Parameters>
  <Parameter>
    <Name>Information</Name>
    <Type>String</Type>
  </Parameter>
  <Parameter>
    <Name>termid</Name>
    <Type>String</Type>
  </Parameter>
</Parameters>

Den næste har måske 4, 5 eller flere parameter, men er det muligt
at lave en select der fortæller antallet af forekomster i xml'en
altså hvor mange gange parameter optræder i xml'en

// Kim
Avatar billede arne_v Ekspert
13. december 2007 - 20:39 #1
Normalt ville man jo nok lave det i app og ikke i SQL. Altså hente XML og så tælle i
programmet,

Muligvis er der også nogle muligheder i XML supporten i SQLServer, men jeg kender ikke
mulighederne.

I 2005 kunne man nemt skrive sin egen lille function i C# til at returnere det.
Avatar billede kichian Nybegynder
15. december 2007 - 21:31 #2
select xmlfelt.value('count(/Parameters/Parameter)','int') as Antal from tabel, hvis xmlfelt er af xmltypen. Ellers kan det klares med
select convert(xml,xmlfelt).value('count(/Parameters/Parameter)','int') as Antal from tabel

Supporten for XML i SQL Server er ganske fin, så hvorfor ikke bruge den (fornuftigt).
Avatar billede kxh Nybegynder
17. december 2007 - 08:17 #3
Hej Kichian

Tak for hjælpen, det var lige det jeg havde brug for, især da jeg
skal bruge antallen i en stored proc, er det jo smartes at SQL serveren kan.

// Kim
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester