vba - 如何对查询中的字母数字文本进行排序?
问题描述
我有一个字段用作列表框的行源。
该字段包含如下所示的值: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"
结果并不如预期。
解决方案
使用格式化字段进行排序,如下所示:
"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' - 正确排序字母数字
推荐阅读
- complex-event-processing - Esper/NEsper EPL 事件声明
- json - 不是类型 '(String, dynamic) => MapEntry 的子类型
'的'转换') - java - 为什么基于 Spring SAML 的应用程序仅在远程服务器上抛出异常?
- javascript - 嗨,我正在使用 R Shiny 中的一个函数来用一种方法格式化数字,但在需要时返回 0 到 0.0K - 或 NA
- selenium - 机器人框架循环验证排序
- python - 无法获得信号以连接到 PyQT5 中的插槽
- node.js - 如何从 MongoDB 的日期范围中展开日期?
- java - 未能应用插件“com.google.protobuf”
- https - 验证错误:num=20:无法获取本地颁发者证书(openssl)
- reactjs - 使用 Jest 和 React 的导入语句收到错误“SyntaxError: Unexpected identifier”