关于ACCESS排序的问题,我怎么觉得相当不准确啊?求高手帮我看看

按表中的两个字段排序,表名ONE,字段1和字段2都不是唯一值,我所想的排序规则是字段1升序排列,遇到字段1相同的按照字段2升序排列,将结果输出到新表TWO中,以下是我行的SQL代码:
strSQL = "create table TWO(字段1,字段2)"
cmd.CommandText = strSQL
cmd.Execute

strSQL = "INSERT INTO TWO(字段1,字段2) SELECT 字段1,字段2 FROM ONE ORDER BY 字段1 ASC,字段2 ASC"
cmd.CommandText = strSQL
cmd.Execute

输出的结果中大体上是按照升序排列,但是有的字段1较小的值排在较大值后面。
我用
strSQL = "SELECT * INTO TWO FROM ONE ORDER BY 字段1 ASC,字段2 ASC"
cmd.CommandText = strSQL
cmd.Execute
结果依然不准确。求高手解答。
原表数据很多,近500万行数据

嗨!别说Access

就是sql server 都不是完全按照排序插入指定表的!


要想实现!必须建立索引!!

在表上建立索引后!


字段1 升序,字段2 升序



记住,别和主键索引有冲突!不过你这个就两个字段!没问题的!


你的代码缺少创建索引的功能!


其实所有数据库都是这样的,自然序输出基本和物理地址的聚集索引有关。

聚集索引具有排序物理地址的功效。微软基本采用的是 聚集索引和物理地址一一对应的方式实现的。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-04-26
如果字段是文本格式,排序肯定会出现你说的现象!
比如:2 会排在 11 后面
相似回答