xquery в sql server 2008

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

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

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

Спасибо


person Daniel    schedule 20.10.2011    source источник


Ответы (2)


Попробуй это:

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() к этому списку целочисленных значений.

person marc_s    schedule 20.10.2011

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

person Jens Erat    schedule 21.10.2011