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
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
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;