2011-10-20 3 views
0

Quelle est la meilleure méthode xquery pour obtenir la valeur d'attribut max du document. Par exemple,xquery dans le serveur sql 2008

<organizations> 
     <organization id="1"/> 
     <organization id="6"/> 
     <organization id="11"/> 
    </organizations> 

Je veux que la requête pour revenir 11.

Merci

Répondre

3
declare @xml xml = ' 
<organizations> 
    <organization id="1"/> 
    <organization id="6"/> 
    <organization id="11"/> 
</organizations>' 

select @xml.value('max(/organizations/organization/@id)', 'int') 
1

Essayez ceci:

DECLARE @input XML = '<organizations> 
     <organization id="1"/> 
     <organization id="6"/> 
     <organization id="11"/> 
    </organizations>' 


SELECT 
    MAX(org.value('(@id)[1]', 'int')) 
FROM 
    @input.nodes('/organizations/organization') AS Orgs(Org) 

Vous devez utiliser .nodes() pour obtenir une liste de toutes les valeurs possibles, et puis appliquez MAX() à cette liste de valeurs entières.

0

L'XQuery snippet que vous cherchez est max(/organizations/organization/@id).

Questions connexes