Sharepoint 2010 CAML查询中的自定义排序顺序

Sharepoint 2010 CAML查询中的自定义排序顺序,sharepoint-2010,caml,Sharepoint 2010,Caml,如何告诉CAML查询以完全自定义的顺序对结果进行排序 例如,对于给定字段: -当与顶部的“栗子”相等时 -然后等于“斑马”下一个 -那么等于‘房子’ 最后,在这些分组中,根据第二个条件进行排序,例如“Name”,通常是升序 那么这个 ID Owns Name ———————————————————— 1 Zebra Sue 2 House Jim 3 Chestnut Sid 4 H

如何告诉CAML查询以完全自定义的顺序对结果进行排序

例如,对于给定字段:

-当与顶部的“栗子”相等时

-然后等于“斑马”下一个

-那么等于‘房子’

最后,在这些分组中,根据第二个条件进行排序,例如“Name”,通常是升序

那么这个

    ID   Owns       Name
    ————————————————————
    1    Zebra      Sue
    2    House      Jim
    3    Chestnut   Sid
    4    House      Ken
    5    Zebra      Bob
    6    Chestnut   Lou
变成

    ID   Owns       Name
    ————————————————————
    6    Chestnut   Lou
    3    Chestnut   Sid
    5    Zebra      Bob
    1    Zebra      Sue
    2    House      Jim
    4    House      Ken

在SQL中,这可以通过Case/When完成。但在CAML?没那么多

据我所知,CAML没有这样的排序运算符。解决方法可能是使用数字数据类型和公式向列表中添加计算列 如果拥有=栗子,0,如果拥有=斑马,1,如果拥有=房子,3999

现在可以对计算列进行排序,这将自定义排序顺序转换为数字。另一种解决方案是创建第二个列表,其中包含要拥有的项,以及第二个列,其中包含它们的排序顺序。您可以链接这两个列表并按项目列表排序顺序排序。好处是排序顺序的更改与编辑相应的列表项一样简单