代码之家  ›  专栏  ›  技术社区  ›  Insomniac

SQL Server:按XML列的节点排序

  •  3
  • Insomniac  · 技术社区  · 15 年前

    我想知道是否可以按查询按XML类型列的节点排序?

    例如,我有一张桌子

    id(int)数据(xml)

    其中,数据列以类似于此的形式存储XML

    <?xml?>
    <Data>
       <SimpleOrderedValue>1</SimpleOrderedValue>
       <ComplicatedInternals>
          ...
       </ComplicatedInternals>
    </Data>
    

    我要按simpleorderedvalue排序查询此表。我可以在带有XML列的MS SQL Server 2008上执行此操作吗?或者,我可以使用clr udt做一些事情,但是不需要额外的计算列,并且以某种方式索引数据列(以便更快地搜索)。

    会感谢你的帮助。 谢谢。

    1 回复  |  直到 15 年前
        1
  •  4
  •   Alex K.    15 年前

    一个怎么样 XQuery 表达;

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