Как использовать запрос SQL Order By для сортировки результатов без учета регистра?

У меня есть база данных SQLite, которую я пытаюсь сортировать по алфавиту. Проблема в том, что SQLite не рассматривает A = a при сортировке, поэтому я получаю такие результаты:

а В С T б с г

Я хочу получить:

а б В С с г Т

Какую специальную вещь SQL нужно сделать, о которой я не знаю?

SELECT * FROM NOTES ORDER BY title

Ответ 1

Вы также можете сделать ORDER BY TITLE COLLATE NOCASE.

Изменить: если вам нужно указать ASC или DESC, добавьте это после NOCASE, как

ORDER BY TITLE COLLATE NOCASE ASC

или

ORDER BY TITLE COLLATE NOCASE DESC

Ответ 2

Вы можете просто преобразовать все в строчные буквы для целей сортировки:

SELECT * FROM NOTES ORDER BY LOWER(title);

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

SELECT * FROM NOTES ORDER BY LOWER(title), title;

Ответ 3

SELECT * FROM NOTES ORDER BY UPPER(title)