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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CAML查询中的自定义排序顺序相关的知识,希望对你有一定的参考价值。

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

.

例如,对于给定的字段:

- 当等于顶部的'栗子'时,

- 接下来等于'Zebra',

- 然后等于'House'?

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

所以这

    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)))将计算列添加到列表中。

现在可以在计算列上进行排序,该列将自定义排序顺序转换为数字。另一个解决方案是您创建第二个列表,其中包含要拥有的项目,第二个列包含其排序顺序。您可以链接这两个列表,并按项目列表排序顺序排序。好处是排序顺序的变化就像编辑各个列表项一样简单。

以上是关于CAML查询中的自定义排序顺序的主要内容,如果未能解决你的问题,请参考以下文章

Sharepoint 的 CAML 查询中的日期时间比较

基于列表显示中的自定义可调用在 Django Admin 中排序

laravel 关系集合上的自定义排序

SOLR查询过滤结果中的自定义排序?

使用针对未知列数的自定义顺序对pandas中的列进行排序

pyspark 数据框中的自定义排序