SQL Server:按XML列的节点排序

时间:2010-05-27 12:26:45

标签: xml sql-server-2008 indexing

我想知道我可以通过XML类型列的节点对我的查询进行排序吗?

例如我有一张表

ID(int)|数据(XML)

其中数据列以类似于

的形式存储XML
<?xml?>
<Data>
   <SimpleOrderedValue>1</SimpleOrderedValue>
   <ComplicatedInternals>
      ...
   </ComplicatedInternals>
</Data>

我想通过SimpleOrderedValue查询此表。我可以在带有XML列的MS SQL Server 2008上执行此操作吗?或者我可以使用CLR UDT做什么,但没有额外的计算列,并且在某种程度上使数据列被编入索引(以便更快地搜索)。

将不胜感激任何帮助。 感谢。

1 个答案:

答案 0 :(得分:4)

XQuery表达式怎么样;

select id, data
from T
  order by data.value('(/Data/SimpleOrderedValue)[1]', 'int')