我有一张桌子。我想按人的年龄对表格进行排序,然后选择年龄在特定范围内的人。这是我尝试过的:
SELECT *
from (SELECT * FROM people ORDER BY age DESC) as myalias
WHERE age BETWEEN 20 AND 25)
我确实获得了这些年龄段的结果,但没有得到解决。有什么建议吗?
答案 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