遇到的问题主要是文件有文件号,形式是[2023]999、M[2023]998、M[2023]1000这种形式的数据,而且必须按照文件号排序,当初没有把前缀和后缀分开,想要排序很麻烦。
幸好找到了解决办法,利用sql的正则表达式把非数字统统替换为空,然后把字符串转换为数字即可。这样的话文件号就变成了2023999、2023998、20231000这种形式,既有了年份,又有了后面的数字,排序效果杠杠的。
这个项目用的是pgsql,排序sql如下,
order by case(regexp_replace(文件号,'[^\d,]','','g') as integer) desc
其他的数据库可以搜一下相应的函数