一尘不染

如何更改sqlite3数据库的排序规则以区分大小写?

sql

我有一个查询sqlite3数据库,该数据库提供了已排序的数据。数据是根据varchar“名称”列进行排序的。现在当我执行查询时

select * from tableNames Order by Name;

它提供了这样的数据。

    钢笔
    订书机
    铅笔

表示正在考虑区分大小写的内容。我想要的方式如下

    钢笔
    铅笔
    订书机

那么,对于必要的结果,我应该在sqlite3数据库中进行哪些更改?

相关如何在字符串比较时将Sqlite3设置为不区分大小写?


阅读 154

收藏
2021-05-05

共1个答案

一尘不染

SQLite数据类型文档讨论了用户定义的排序规则序列。具体来说,您可以使用COLLATE
NOCASE实现您的目标。

他们举了一个例子:

CREATE TABLE t1(
    a,                 -- default collation type BINARY
    b COLLATE BINARY,  -- default collation type BINARY
    c COLLATE REVERSE, -- default collation type REVERSE
    d COLLATE NOCASE   -- default collation type NOCASE
);

并注意:

-使用NOCASE排序规则序列进行分组(即,值-‘abc’和’ABC’放在同一组中)。SELECT count(*)GROUP BY d FROM t1;

2021-05-05