CAML查询中的自定义排序订单



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

例如,对于给定的字段:

- 当顶部等于"栗子"时,

- 然后等于"斑马",

- 然后等于"房子"?

最后,在这些分组中,在第二个条件(例如"名称")上排序,通常是上升。

所以这个

    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据我所知,没有这样的排序操作员。解决方法可能是您使用数字数据类型和公式将计算的列添加到列表中 =IF(Owns="Chestnut",0,IF(Owns="Zebra",1,IF(Owns="House",3,999)))

现在可以在计算的列上订购,该列将自定义排序顺序转换为数字。另一个解决方案是,您可以使用要拥有的项目创建第二个列表,以及包含其排序顺序的第二列。您可以通过项目列表排序订单链接这两个列表并订购。好处是,排序顺序的更改就像编辑各自的ListItems一样容易。

相关内容

  • 没有找到相关文章

最新更新