自定义排序规则

还可以使用 CreateCollation 定义自己的排序序列或替代内置排序序列。 下面的示例演示如何替代 NOCASE 排序规则以支持 Unicode 字符。 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 count = (long)queryCommand.ExecuteScalar();

Like 运算符

SQLite 中的 LIKE 运算符不遵循排序规则。 默认实现的语义与 NOCASE 排序规则相同。 只对 ASCII 字符 A 到 Z 不区分大小写。

可以使用以下 pragma 语句轻松地使 LIKE 运算符区分大小写:

PRAGMA case_sensitive_like = 1

有关替代 LIKE 运算符的实现的详细信息,请参阅用户定义的函数

  • 用户定义的函数
  • SQL 语法
  •