@DoggoTheKing

Как раз и навсегда отсортировать записи в PostgreSQL?

Есть таблица, в ней есть интовые столбцы A и B.
Таблица отсортирована по столбцу A. Нужно сделать так, чтоб таблица была отсортирована по B.
ORDER BY не подходит, ибо это разовая сортировка(как я понял)
  • Вопрос задан
  • 843 просмотра
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега PostgreSQL
Седой и строгий
PostgreSQL, как и многие другие СУБД, хранит данные в произвольном порядке. И выбирает он их тоже в произвольном, если не задано правило сортировки. Всё что вы можете сделать, это построить индекс по интересующим вас полям, чтобы выборка с сортировкой по этим полям выполнялась быстро.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 5
@ponaehal
Говорю про Oracle, но подозреваю во всех БД примерно так же
Раз и навсегда отсортировать данные не получится. Данные в таблице неотсортированы. Можно это сделать искусственно. Перенести данные в другую таблицу, потом данные в исходной таблице удалить и залить из второй в нужном порядке. Но смысла от этого немного - когда кто-нибудь еще добавит данные в эту таблицу, ваша сортировка поедет. В общем случае, гораздо правильнее воспользоваться индексом (в нем данные осортированы) и следить что бы он использовался в запросах.
Ответ написан
Комментировать
@d-stream
Готовые решения - не подаю, но...
Формулировка вопроса идентична "мне скачаный файл не нужен, как закачать его обратно в интернет?"

У таблиц субд порядок вывода по запросу определяется либо явно order by в каждый момент времени, либо как субд удобно, приото каждый раз по-разному. А то что часто стихиный порядок повторяется -это всего лишь случайность.

Единственный способ - ключи и индексы. При их грамотном построении вывод будет не только по указанному порядку, но и в ряде случаев быстрее.
Ответ написан
Комментировать
ky0
@ky0
Миллиардер, филантроп, патологический лгун
Сортируете в другую таблицу, первую удаляете, переименовываете. Но так делать не надо.
Ответ написан
@alexalexes
Создаете view с нужной сортировкой и используете ее во всех запросах.
Ответ написан
@hardstep1983
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы