按表中的两个字段排序,表名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 升序
记住,别和主键索引有冲突!不过你这个就两个字段!没问题的!
你的代码缺少创建索引的功能!
其实所有数据库都是这样的,自然序输出基本和物理地址的聚集索引有关。
聚集索引具有排序物理地址的功效。微软基本采用的是 聚集索引和物理地址一一对应的方式实现的。