小编典典

子查询中是否允许order by子句

sql

是否有任何原因为什么或为什么不应该在子查询中执行“排序依据”?


阅读 186

收藏
2021-05-05

共1个答案

小编典典

是:不应这样做,因为从概念上讲这没有意义。

子查询将在某些外部查询中使用(否则它将毫无意义),并且该外部查询无论如何都必须进行排序,因此对子查询进行排序没有任何意义。

这是因为除非使用显式ORDER,否则SQL中的查询结果将没有特定的顺序。因此,即使您在子查询中使用了ORDER,也无法保证这会影响外部查询的结果顺序。所以这是没有意义的。

当然,由于它的实现,它可能会在某些特定的RDBMS中有所作为,但这将是特定于实现的,而不是您应依赖的。

编辑: 当然,如果在子查询中使用TOP或LIMIT, 需要使用ORDER。但这毕竟不是标准的SQL …

2021-05-05