excel文件字符排序问题
一个excel文件,SHEET名为HCODE,第一列名为pfx,需要读这个文件的第一列数据,
数据类似下面,都是一些手机号码的前缀
130
131
132
133
1330726
1331053
1331054
1331055
1331718
1331726
1331728
1332982
1332983
。。。。。。
下面这个方法读出来没有问题,但最后显示的结果顺序却不是按照字符的ASCII码的大小排序的,是按照字符串的长短,如下:
set rs = CreateObject( "adodb.recordset ")
dim strSql2
strSql2 = "SELECT pfx "
strSql2 = strSql2 & " FROM [HCODE$] "
strSql2 = strSql2 & "order by pfx "
Set rs=Conn.Execute(strSql2)
130
131
132
133
134
135
136
137
138
139
1330726
1331053
1331054
1331055
1331718
1331726
1331728
1332982
1332983
1333749
1333994
1334355
1336718
1337796
1338523
1338769
1339619
13800138000
而我希望的结果应该是按照字符的ASCII码大小排序,如下:
130
131
132
133
1330726
1331053
1331054
1331055
1331718
1331726
1331728
1332982
1332983
1333749
1333994
1334355
1336718
1337796
1338523
1338769
1339619
134
135
136
137
138
13800138000
139
baidu到一个方法就是在数字前面加单引号,这个方法试过后可以,但有没有其他的办法,直接改SQL的,因为EXCEL文件号码太多,不适合一一加;
我也试过vb的一些转换函数,如cint,clng,val...都不行
谢谢!!
[解决办法]
try
"select * from [HCODE$] order by format(pfx, '0000000000000 ') "
[解决办法]
先建立几个临时变量,把数字当作字符串放进去,位数不足的补齐,之后再进行排序
[解决办法]
方法一:在EXCEL里面先把所有的内容全部转成字符型,再转。
方法二:建立两个字段,一个字段用来存pfx,另外一个字段用来存它的序列。