SQL语句在排序值之间选择

时间:2019-01-16 11:04:21

标签: sql sorting between

我有一张桌子。我想按人的年龄对表格进行排序,然后选择年龄在特定范围内的人。这是我尝试过的:

SELECT *
from (SELECT * FROM people ORDER BY age DESC) as myalias
WHERE age BETWEEN 20 AND 25)

我确实获得了这些年龄段的结果,但没有得到解决。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

SQL表表示无序集。 SQL查询返回 unordered 集。 。 。但有一个例外:如果最外面的select具有对应的order by

因此,子查询中的order by无效。在这种情况下,某些数据库甚至不允许order by。在另一些情况下,它可能看起来像是按顺序排列的,但看起来或结果却有所改变。

在您的情况下,子查询是不必要的。您可能知道,但是您应该写:

SELECT p.*
FROM people p
WHERE p.people_Age BETWEEN 20 AND 25
ORDER BY p.age DESC