Comment utiliser SQL Order By statement pour trier les résultats insensible à la casse?

j'ai une base de données SQLite que j'essaie de trier par ordre alphabétique. Le problème est que SQLite ne semble pas considérer A = A pendant le tri, donc j'obtiens des résultats comme ceci:

A B C T un b C g

je veux obtenir:

A un b B C C g T

quelle chose spéciale SQL doit être faite que je ne connais pas?

SELECT * FROM NOTES ORDER BY title
121
demandé sur CodeFusionMobile 2010-03-10 02:30:55

3 réponses

vous pouvez aussi faire ORDER BY TITLE COLLATE NOCASE .

modifier: si vous devez spécifier ASC ou DESC , ajouter après NOCASE comme

ORDER BY TITLE COLLATE NOCASE ASC

ou

ORDER BY TITLE COLLATE NOCASE DESC

215
répondu dan04 2017-10-31 08:55:32

vous pouvez simplement tout convertir en minuscules pour les besoins du tri:

SELECT * FROM NOTES ORDER BY LOWER(title);

Si vous voulez vous assurer que les majuscules toujours à l'avance de minuscules, il suffit d'ajouter que, comme un tri secondaire:

SELECT * FROM NOTES ORDER BY LOWER(title), title;
88
répondu Chad Birch 2010-03-09 23:32:14
SELECT * FROM NOTES ORDER BY UPPER(title)              
0
répondu Md Shahriar 2017-06-12 20:40:07