如何使用 SQLOrderBy 语句对不区分大小写的结果进行排序?

我有一个 SQLite 数据库,我试图按字母顺序排序。问题是,SQLite 在排序时似乎不考虑 A = a,因此我得到的结果是这样的:

A B C T 一 B C 克

我想得到:

A 一 B B C C 克 T

什么特殊的 SQL 事情需要做,我不知道吗?

SELECT * FROM NOTES ORDER BY title
120580 次浏览

为了进行排序,您可以将所有内容都转换为小写:

SELECT * FROM NOTES ORDER BY LOWER(title);

如果你想确保大写字母仍然排在小写字母之前,只需要添加一个次要的排序:

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

你也可以做 ORDER BY TITLE COLLATE NOCASE

Edit: If you need to specify ASC or DESC, add this after NOCASE like

ORDER BY TITLE COLLATE NOCASE ASC

或者

ORDER BY TITLE COLLATE NOCASE DESC
SELECT * FROM NOTES ORDER BY UPPER(title)