在SELECT查询中包含DISTINCT是否意味着应该对结果集进行排序?
我不认为它,但我正在寻找一个权威的答案(网络链接).
我有这样的查询:
Select Distinct foo From Bar
在oracle中,结果是截然不同的,但不是按排序顺序排列的.在Jet / MS-Access中,似乎还有一些额外的工作要确保结果是排序的.我假设oracle在这种情况下遵循规范并且MS Access已经超越了.
另外,有没有办法可以给表提示它应该在foo上排序(除非另有说明)?
解决方法
从
SQL92 specification:
If DISTINCT is specified,then let TXA be the result of eliminating redundant duplicate values from TX. Otherwise,let TXA be TX.
…
4) If an is not specified,then the ordering of the rows of Q is implementation-dependent.
最终真正的答案是DISTINCT和ORDER BY是sql语句的两个独立部分;如果您没有ORDER BY子句,则不会按照定义对结果进行特定排序.