我已经做了好几个月了。我只是无法得到natural (真α-数字)结果。我感到震惊的是,我不能得到他们,因为我能够从1992年以来在RPG与EBCDIC。
我正在寻找任何解决方案,在SQL,VBS或简单的excel或access。以下是我掌握的数据:
299-8,
3410L-87,
3410L-88,
420-A20,
420-A21,
420A-40,
4357-3,
AN3H10A,
K117GM-8,
K129-1,
K129-15,
K271B-200L,
K271B-38L,
K271D-200EL,
KD1051,
KD1062,
KD1092,
KD1108,
KD1108,
M8000-3,
MS24665-1,
SK271B-200L,
SAYA4008我寻找的顺序是真正的alpha-数字顺序,如下所示:
AN3H10A,
KD1051,
KD1062,
KD1092,
KD1108,
KD1108,
K117GM-8,
K129-1,
K129-15,
MS24665-1,
M8000-3,
SAYA4008,
SK271B-200L库存是7800条记录,所以我在处理能力方面也有一些问题。
任何帮助都将不胜感激。
杰夫
发布于 2017-09-12 18:04:21
在本机Excel中,可以添加多个排序列以返回每个字符的ASCII代码,但如果该字符是数字,则向代码中添加一个大数字(例如1000)。
然后对每个助手列进行排序,包括表中的第一个列,而不是排序。
公式:
=IFERROR(CODE(MID($A1,COLUMNS($A:A),1))+AND(CODE(MID($A1,COLUMNS($A:A),1))>=48,CODE(MID($A1,COLUMNS($A:A),1))<=57)*1000,"")排序对话框:

结果:

您可以使用VBA实现类似的算法,也可以使用SQL实现。我不知道VBS或Access的事。
发布于 2017-09-12 16:09:23
您可以尝试使用格式对左填充字符串按顺序
select column
from my_table
order by Format(column, "0000000000")发布于 2017-09-12 16:53:16
添加排序列:
, iif (left(fieldname, 1) between '0' and '9', 1, 0) sortField
etc
order by sortField, FieldNamehttps://stackoverflow.com/questions/46180955
复制相似问题