一尘不染

是否保证子查询中的顺序得以保留?

sql

我特别想知道PostgreSQL。给出以下人为的示例:

SELECT name FROM
  (SELECT name FROM people WHERE age >= 18 ORDER BY age DESC) p
LIMIT 10

从外部查询返回的名称是否保证与内部查询的顺序相同?


阅读 129

收藏
2021-05-05

共1个答案

一尘不染

不,在外部查询中按以下顺序排序:

SELECT name FROM
  (SELECT name, age FROM people WHERE age >= 18) p
ORDER BY p.age DESC
LIMIT 10

内部(子)查询返回结果集。如果按此顺序进行排序,则保证从内部(子)查询传递到外部查询的中间结果集将按照您指定的方式进行排序,但是在外部查询中不对结果进行排序通过处理内部查询结果集生成的结果集,不能保证以任何方式进行排序。

2021-05-05