Sqlite INSERT INTO ... ВЫБРАТЬ, используя ORDER BY - PullRequest
0 голосов
/ 02 мая 2018

У меня есть таблица, как показано ниже:

CREATE TABLE IF NOT EXISTS TRACE_TABLE ([TRACE_NUM] INTEGER NOT NULL PRIMARY KEY [TRACE_ID] INTEGER NOT NULL [TRACE_TIME_DELTA] TEXT NOT NULL [TRACE_TIME_HEX] INTEGER NOT NULL [TRACE_TIME_AHB] INTEGER NOT NULL [TRACE_PARAM_TEXT] TEXT NOT NULL [TRACE_PARAM_TEXT_DECODED] TEXT);

Теперь я хочу отсортировать эту таблицу по столбцу. Для этого я делаю следующее:

  1. Создать новую таблицу TRACE_TABLE_TEMP , используя приведенный выше оператор, если не существует.
  2. Затем удалите все строки (если они есть) с помощью более ранних операций
  3. Затем скопируйте все строки из TRACE_TABLE в TRACE_TABLE_TEMP , но в порядке сортировки, используя столбец .

Я пытаюсь выполнить инструкцию в браузере Sqlite DB, но не получаю ожидаемого результата. См. Ниже, столбец TRACE_NUM не отсортирован как DESC .

enter image description here

Как скопировать таблицу в другую в отсортированном порядке?

1 Ответ

0 голосов
/ 02 мая 2018

Документация гласит:

Если оператор SELECT, который возвращает более одной строки, не имеет предложения ORDER BY, порядок, в котором возвращаются строки, не определен.

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

В любом случае, ошибка в том, что 'TRACE_NUM' является константной строкой. Чтобы обратиться к содержанию столбца, используйте TRACE_NUM.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...