Запрос возвращает неожиданное значение - PullRequest
0 голосов
/ 11 января 2020

Когда я использую следующий запрос, SQLite возвращает следующее:

enter image description here

Так как TotalSafeSanitationServices2000 идет от, скажем, 80 - 79 следующего значения в порядке убывания будет 8. Тип данных установлен на TEXT, и я предполагаю, что именно поэтому, но из того, что я прочитал, тип данных менее важен в SQLite, но его труднее изменить.

Есть ли простое решение для этого?

Я использую браузер БД для SQLite

1 Ответ

1 голос
/ 11 января 2020

Правила сортировки отличаются от строк и чисел; в строковом отношении '89' меньше '9' (потому что оно начинается с '8', что меньше '9').

Вы можете CAST() свои строки в числа для сортировки:

order by cast(TotalSafeSanitationService2000 as integer)

Я бы предложил изменить структуру данных для сохранения чисел в виде чисел. Вы начинаете видеть проблемы, которые возникают, когда вы не используете правильный тип данных (это еще не все, такие как artithmeti c операции). SQLite имеет ограниченные функциональные возможности для изменения таблицы, поэтому вам нужно будет воссоздать ее, переместить данные и удалить старую.

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