Оператор SQL Выбор между отсортированными значениями - PullRequest
0 голосов
/ 16 января 2019

У меня есть таблица людей. Я хочу отсортировать таблицу по возрасту людей и выбрать их в определенном возрасте. Вот что я попробовал:

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

Я получаю результаты между этими возрастами, но они не отсортированы. Есть предложения?

1 Ответ

0 голосов
/ 16 января 2019

Таблицы SQL представляют неупорядоченные наборы. SQL-запросы возвращают неупорядоченных набора. , , с одним исключением: если крайний 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
...