首页 > 解决方案 > 如何对查询中的字母数字文本进行排序?

问题描述

我有一个字段用作列表框的行源。
该字段包含如下所示的值:A1、A2、A10、AB、1、2。
我希望它看起来像:1、2、A1、A2、A10、AB。

我试过:

"SELECT DISTINCT TenancyCode FROM tbl1 WHERE 
TenancyCode IS NOT NULL ORDER BY TenancyCode 
ASC"  

结果并不如预期。

标签: vbams-access

解决方案


使用格式化字段进行排序,如下所示:

"SELECT DISTINCT TenancyCode FROM tbl1 WHERE 
TenancyCode IS NOT NULL ORDER BY Format$(Right$(TendancyCode, Len(TendencyCode) - 1), "0000") ASC"

这将去掉第一个字符并将数字部分格式化为 4 位。如果您的数据并不总是以 1 个字母字符开头,则解决方案要复杂得多。

在此处阅读有关选项的更多信息:MySQL 'Order By' - 正确排序字母数字


推荐阅读