2015-01-13 2 views
2

В следующем запросе в SQLiteпорядок сортировки в SQLite

SELECT cfpref FROM cfprefs ORDER BY cfpref 

Я ожидаю, что выход будет отсортирован в порядке ASCII. Тем не менее, вывод содержит

GLAIC_TLC 
GLAICSPW 

в таком порядке, хотя подчеркивание (_) в ASCII-таблице располагается после заглавных букв. Это намеренно, или это ошибка?

+1

Хороший @peterm вызов. Я не ожидал такого поведения. [NOCASE - То же, что и двоичное, кроме 26 символов верхнего регистра ASCII, сворачиваются до их младших эквивалентов до сравнения) (https://www.sqlite.org/datatype3.html) –

ответ

3

Вы, если вдруг, используете COLLATE NOCASE на cfpref?

Вот SQLFiddle демо

При использовании по умолчанию BINARY сортировки по вы получите ваш ожидаемый порядок

Вот SQLFiddle демо

+0

Да, я использовал КОЛЛЕКТИВНЫЙ НОК – Eugene

Смежные вопросы