Условие PostgreSQL ORDER BY

Читать первым в Telegram

Данная статья относится к циклу статей, посвященных PostgreSQL. В предыдущей статье мы ознакомились с оператором PostgreSQL SELECT. Настало время перейти к изучению условия PostrgeSQL ORDER BY, позволяющего отсортировать набор результатов, возвращаемых оператором SELECT.

Введение в условие PostgreSQL ORDER BY

Когда вы запрашиваете данные из таблицы, PostgreSQL возвращает строки в том порядке, в котором они были занесены в таблицу. Чтобы отсортировать порядок результатов, используйте условие ORDER BY в операторе SELECT.

Как уже говорилось ранее, условие ORDER BY позволяет вам сортировать строки, возвращаемые оператором SELECT, в порядке возрастания или убывания на основе указанных критериев.

Ниже описан синтаксис условия ORDER BY:

SELECT
  column_1,
  column_2
FROM
  tbl_name
ORDER BY
  column_1 ASC,
  column_2 DESC;

Давайте детальнее рассмотрим условие ORDER BY:

  • Во-первых, укажите столбец, который вы хотите отсортировать в условии ORDER BY. Если вы сортируете набор результатов по нескольким столбцам, используйте запятую для разделения между двумя столбцами.
  • Во-вторых, используйте ASC для сортировки набора результатов по-возрастанию и DESC по-убыванию. Если вы оставите это поле пустым, то условие ORDER BY будет использовать ASC по-умолчанию.

Теперь рассмотрим несколько примеров использования условия PostgreSQL ORDER BY.

Примеры использования PostgreSQL ORDER BY

Для демонстрации мы возьмём таблицу customer из примера базы данных.

Следующий запрос сортирует покупателей по имени в порядке возрастания (в данном случае по алфавиту А-Я):

SELECT
  first_name,
  last_name
FROM
  customer
ORDER BY
  first_name ASC;

Из-за того, что по-умолчанию используется ASC, вы можете не упоминать его в вызове оператора.

Если вам необходимо отсортировать покупателей по фамилии в порядке убывания (по алфавиту Я-А), вы можете использовать ключевое слово DESC, как показано в следующем запросе ниже:

SELECT
  first_name,
  last_name
FROM
  customer
ORDER BY
  last_name DESC;

Если вы хотите сначала отсортировать клиентов по имени в порядке возрастания, а затем отсортировать результирующий набор по фамилии в порядке убывания, используйте следующий запрос:

SELECT
  first_name,
  last_name
FROM
  customer
ORDER BY
  first_name ASC,
  last_name DESC;

Обратите внимание, что стандарт SQL позволяет сортировать строки только по столбцам, которые появляются в условии SELECT. Однако, PostgreSQL позволяет сортировать строки по столбцам, которые даже не отображаются в списке выбора.

Рекомендуется следовать стандарту SQL, чтобы сделать ваш код гибким к изменениям, которые могут произойти в следующем обновлении PostgreSQL.

Итак, мы изучили условие ORDER BY, позволяющее нам отсортировать набор результатов, возвращаемых оператором SELECT, и можем двигаться к следующему — SELECT DISTINCT.

Источник: PostgreSQL Tutorial from Scratch

Поддержать проект

Социальные сети проекта:

Подпишись, чтобы ничего не пропустить!