【问题标题】:xquery in sql server 2008sql server 2008 中的 xquery
【发布时间】:2011-10-20 19:24:52
【问题描述】:
从文档中获取最大属性值的最佳 xquery 方法是什么。例如
<organizations>
<organization id="1"/>
<organization id="6"/>
<organization id="11"/>
</organizations>
我希望查询返回 11。
谢谢
【问题讨论】:
标签:
sql-server-2008
xquery-sql
【解决方案1】:
declare @xml xml = '
<organizations>
<organization id="1"/>
<organization id="6"/>
<organization id="11"/>
</organizations>'
select @xml.value('max(/organizations/organization/@id)', 'int')
【解决方案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() 应用于该整数值列表。
【解决方案3】:
您要查找的 XQuery sn-p 是 max(/organizations/organization/@id)。