xquery в SQL Server 2008 - PullRequest
       8

xquery в SQL Server 2008

0 голосов
/ 20 октября 2011

Какой лучший метод xquery для получения максимального значения атрибута из документа.Например,

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

Я хочу, чтобы запрос возвратил 11.

Спасибо

Ответы [ 3 ]

3 голосов
/ 21 октября 2011
declare @xml xml = '
<organizations>
  <organization id="1"/>
  <organization id="6"/>
  <organization id="11"/>
</organizations>'

select @xml.value('max(/organizations/organization/@id)', 'int')
1 голос
/ 21 октября 2011

Попробуйте:

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)

Вам нужно использовать .nodes(), чтобы получить список всех возможных значений, а затем применить MAX() к этому списку целочисленных значений.

0 голосов
/ 21 октября 2011

Фрагмент XQuery, который вы ищете: max(/organizations/organization/@id).

...