Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Сортировка последовательностей используется SQLite при сравнении значений TEXT для определения порядка и равенства. Можно указать, какие параметры сортировки необходимо использовать при создании столбцов или для каждой операции в запросах SQL. SQLite включает три последовательности сортировки по умолчанию.
| Сопоставление | Описание |
|---|---|
| RTRIM | Игнорирует конечные пробелы |
| NOCASE | Без учета регистра для ASCII-символов от A до Z |
| БИНАРНЫЙ | Зависящий от регистра. Сравнивает байты напрямую |
Настраиваемая сортировка
Вы также можете определить собственные последовательности сортировки или переопределить встроенные, используя функцию CreateCollation. В следующем примере показано переопределение параметров сортировки NOCASE для поддержки символов Юникода. Полный пример кода доступен на сайте GitHub.
connection.CreateCollation("NOCASE", (x, y) => string.Compare(x, y, ignoreCase: true));
var queryCommand = connection.CreateCommand();
queryCommand.CommandText =
@"
SELECT count()
FROM greek_letter
WHERE value = 'λ' COLLATE NOCASE
";
var oCount = queryCommand.ExecuteScalar();
var count = (oCount is not null) ? (int)oCount : -1;
Оператор Like
Оператор LIKE в SQLite не учитывает правила сопоставления. Реализация по умолчанию имеет ту же семантику, что и колляция NOCASE. Регистр игнорируется только для символов ASCII от A до Z.
Вы можете легко сделать оператор LIKE чувствительным к регистру, используя следующую инструкцию pragma:
PRAGMA case_sensitive_like = 1
Дополнительные сведения о переопределении реализации оператора LIKE см. в определяемых пользователем функциях .