Access按文本字段顺序排序

2018-09-29 15:15:00
roych
原创
489

在Access数据表中,我们需要对数据按序号进行排序。如果是文本类型,即不会按阿拉伯数字大小排序。

比如说表中数据有文件编号,文件编号为   公告[2017]3号,[2017]12号......需要按文件编号顺序排序


这里如果用系统自带的排序功能或者直接用order by排序都是不正确的。



所以需要创建查询,分别提取年份和号数,然后排序

SELECT 表1.文件编号, CLng(Mid([文件编号],InStr(1,[文件编号],"[")+1,4)) AS 年份, CLng(Mid([文件编号],InStr(1,[文件编号],"]")+1,InStr(1,[文件编号],"号")-InStr(1,[文件编号],"]")-1)) AS 编号
FROM 表1
ORDER BY CLng(Mid([文件编号],InStr(1,[文件编号],"[")+1,4)), CLng(Mid([文件编号],InStr(1,[文件编号],"]")+1,InStr(1,[文件编号],"号")-InStr(1,[文件编号],"]")-1));

    分享