2010-03-08 9 views
2

Je suis nouveau à interroger le type de données XML dans SQL Server 2005. Tout le monde peut m'aider à créer une requête pour mon besoin? Voici un scénario de ma colonne.Requête SQL SQL Server 2005

Column Name: Cabinet 

/*Row 1 XML Data*/ 
<shelf> 
<box> 
    <item type="pencil" color="blue"/> 
    <item type="pencil" color="red"/> 
    <item type="paper" color="white"/> 
    <item type="ribbon" color="red"/> 
</box> 
<shelf> 

/*Row 2 XML Data*/ 
<shelf> 
    <item type="pencil" color="yellow"/> 
    <item type="can" color="blue"/> 
    <item type="scissor" color="yellow"/> 
<shelf> 

Desired Output: 
4 
3 

Je veux compter le nombre de noeuds « item » quelle que soit sa couleur de type &. Merci d'avance.

Répondre

2

Jetez un oeil à ce (exemple travaillant à plein)

DECLARE @Table TABLE(
     Cabinet XML 
) 

INSERT INTO @Table SELECT 
'<shelf> 
<box> 
    <item type="pencil" color="blue"/> 
    <item type="pencil" color="red"/> 
    <item type="paper" color="white"/> 
    <item type="ribbon" color="red"/> 
</box> 
</shelf>' 

INSERT INTO @Table SELECT 
'<shelf>  
    <item type="pencil" color="yellow"/> 
    <item type="can" color="blue"/> 
    <item type="scissor" color="yellow"/> 
</shelf>' 

SELECT *, 
     Cabinet.query('count(//item)').value('.','int') 
FROM @Table 
+0

merci, tout ce que je dois. – hallie

+0

c'est un bel exemple! –