想把年份涉及公元前后按照升序排起来,试了很多种办法都没法衔接,有没有大大有解决方案的~
数据库排序问题
相关帖子
- 其他回帖
-
MisakaImouto • • 1
可以创建一个模板列,粘贴下面代码,然后模板列降序或升序。之后可以隐藏模板列,既不影响查看,也不影响后续插入新数据的排序。
.action{ $formatYear := .年份 }.action{ if eq .公历 "公元前" }.action{ $formatYear = (cat "0" .年份) }.action{ end }.action{ if eq .公历 "公元" }.action{ $formatYear = (cat "1" .年份) }.action{ end }.action{ $formatYear }
注意:把代码中的
.公历
换成你的 公历... 列名,截图中看不列的全名,所以需要自己补充完整。2 回复 -
JeffreyChen • • 1
写好了。
这个模板对你的「年份」有点要求:年份只能是 4 位数,少一位多一位都不行。(你要是真需要超过 4 位数的年份了再来找我)
你只需要用下面这个单行的模板替换你那个模板列里的模板就行了,然后可以右键表头把模板列隐藏起来。
.action{ $Year := .年份 }.action{ if eq .公历纪元 "公元前" }.action{ cat "1" (sub 9999 (atoi (regexFind "[0-9]{4}" $Year))) }.action{ else if eq .公历纪元 "公元" }.action{ cat "2" (regexFind "[0-9]{4}" $Year) }.action{ else }0.action{ end }
另外还有个地方要注意:因为排序的原因,新建条目的时候可能会跳动一下,没有选择「公历纪元」的条目会排序在数据库最上面
原始带缩进的模板是:
.action{ $Year := .年份 } .action{ if eq .公历纪元 "公元前" } .action{ cat "1" (sub 9999 (atoi (regexFind "[0-9]{4}" $Year))) } .action{ else if eq .公历纪元 "公元" } .action{ cat "2" (regexFind "[0-9]{4}" $Year) } .action{ else } 0 .action{ end }
1 回复1 操作JeffreyChen 在 2024-07-18 21:54:11 更新了该回帖 - 查看全部回帖
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于