当前位置:  开发笔记 > 数据库 > 正文

SELECT DISTINCT是否意味着某种结果

如何解决《SELECTDISTINCT是否意味着某种结果》经验,为你挑选了2个好方法。

在SELECT查询中包含DISTINCT是否意味着应该对结果集进行排序?

我不认为它,但我正在寻找一个权威的答案(网络链接).

我有这样的查询:

Select Distinct foo
From Bar

在oracle中,结果是截然不同的,但不是按排序顺序排列的.在Jet/MS-Access中,似乎还有一些额外的工作要确保结果是排序的.我假设oracle在这种情况下遵循规范并且MS Access已经超越了.

另外,有没有办法可以给表提示它应该排序foo(除非另有说明)?



1> Chris Shaffe..:

从SQL92规范:

如果指定了DISTINCT,则让TXA成为从TX中消除冗余重复值的结果.否则,让TXA成为TX.

...

4)如果未指定a,则Q行的排序依赖于实现.

最终真正的答案是DISTINCT和ORDER BY是SQL语句的两个独立部分; 如果您没有ORDER BY子句,则不会按照定义对结果进行特定排序.



2> David Aldrid..:

在许多情况下,Oracle中的DISTINCT并不意味着排序,其中最重要的是10g +中使用的散列算法,用于分组操作和不同操作.

如果需要有序的结果集,请始终指定ORDER BY,即使在9i及更低版本中也是如此.

推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有