Dataview 语法实战:自定义排序的简单实例
SORT 有排序的意思,既然是排序,我们就需要指定是依据什么字段排序。dataview 提供了两个关键字 ASC 和 DESC 来选择结果是从小到大排序还是从大到小排序。但是,我们能不能自定义一种排序方式呢?
简单实例
前情提要
有一组介绍菜肴的数据集,存放在 “10 Example Data/food” 文件夹中。每一个菜谱文件都包含配方类型、配方来源、烹饪时长和所需食材这四个属性;在这个食谱数据集中,只有三种配方类型,分别是 vegetarian, meat 和 onepot;
如果我们直接列出所有的食谱以及食谱类型,我们会得到这么一个结果
```dataview
TABLE recipe-type
FROM "10 Example Data/food"
WHERE recipe-type
```
是不是有点混乱,我们试试直接加上 SORT 操作符
```dataview
TABLE recipe-type
FROM "10 Example Data/food"
WHERE recipe-type
SORT recipe-type
```
可以看到,的确有顺序了,但是此时的排序规则是按照字符串的大小排序的(。可是如果我们想要让 vegetarian 排在第一个,让 meat 排在第二个,让 onepot 排在第三个该怎么实现呢?
我们可以借助 choice()
函数
```dataview
TABLE recipe-type
FROM "10 Example Data/food"
WHERE recipe-type
SORT choice(recipe-type = "vegetarian", "1", choice(recipe-type = "meat", "2","3")) ASC
```
我们利用 choice()
函数令 vegetarian 为 1,meat 为 2,其余为 3,这样就做到了自定义排序的效果。
讨论
若阁下有独到的见解或新颖的想法,诚邀您在文章下方留言,与大家共同探讨。
反馈交流
其他渠道
版权声明
版权声明:所有 PKMer 文章如果需要转载,请附上原文出处链接。