在SELECT查询中包含DISTINCT是否意味着应该对结果集进行排序?
我认为没有,但是我正在寻找权威的答案(网络链接)。
我有这样的查询:
Select Distinct foo From Bar
在oracle中,结果是不同的,但未按排序顺序。在Jet / MS- Access中,似乎需要做一些额外的工作来确保结果是分类的。我假设在这种情况下oracle遵循了规范,而MS Access已经超越了规范。
另外,有没有一种方法可以给表一个提示,提示该表应该在该表上进行排序foo(除非另有说明)?
foo
根据SQL92规范:
如果指定了DISTINCT,则使TXA为从TX中消除冗余重复值的结果。否则,将TXA设为TX。
…
4)如果未指定an,则Q行的顺序与实现有关。
最终,真正的答案是DISTINCT和ORDER BY是SQL语句的两个独立部分。如果您没有ORDER BY子句,则根据定义,结果将不会特别排序。