ACCESS数据库分类查询后结果为什么是排序的
1个回答
展开全部
一种情况是该分类查询使用了 order by 排序子句强制实施了排序;
另一种情况是该分类查询并没用强制排序,但是实际输出结果看起来还是排序了。导致这种现象出现的原因是比较复杂的,它是由源表的数据结构(如字段类型、索引等)、SQL语句的写法和数据库引擎执行SQL语句的内部算法综合作用导致的。
下面举个简单的情况说明一下,例如:
select 商品分类,count(*) as 分类数量 from 商品表 group by 商品分类;
这条语句即使不强制排序,实际输出结果也会按商品分类排序输出,因为数据库引擎在后台计算每个分类的数量实际是首先要将各条商品记录按商品分类排序后再来按顺序数人头的(每个分类的数量),这样计算结果出来后附带的排序效果也自然有了,如果数据库引擎再将它打乱输出反而需要在此基础上额外增加系统开销。
需要指出的是SQL选择查询执行后自然形成的排序效果在很多情况下是很难预料的(除非您是基础数据库开发工程师),因此我们应该根据实际需求决定是否人为对输出结果强制排序。
另一种情况是该分类查询并没用强制排序,但是实际输出结果看起来还是排序了。导致这种现象出现的原因是比较复杂的,它是由源表的数据结构(如字段类型、索引等)、SQL语句的写法和数据库引擎执行SQL语句的内部算法综合作用导致的。
下面举个简单的情况说明一下,例如:
select 商品分类,count(*) as 分类数量 from 商品表 group by 商品分类;
这条语句即使不强制排序,实际输出结果也会按商品分类排序输出,因为数据库引擎在后台计算每个分类的数量实际是首先要将各条商品记录按商品分类排序后再来按顺序数人头的(每个分类的数量),这样计算结果出来后附带的排序效果也自然有了,如果数据库引擎再将它打乱输出反而需要在此基础上额外增加系统开销。
需要指出的是SQL选择查询执行后自然形成的排序效果在很多情况下是很难预料的(除非您是基础数据库开发工程师),因此我们应该根据实际需求决定是否人为对输出结果强制排序。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询