SQLite COMMANDE PAR chaîne de caractères contenant des numéros commençant par 0
comme le titre le stipule:
J'ai une requête select, dont je suis en train de "commander" un champ qui contient des nombres, le truc, c'est cela, les nombres sont vraiment les chaînes de caractères commençant avec des 0, de sorte que le "order by" est en train de faire cette...
...
10
11
12
01
02
03
...
Toutes les pensées?
EDIT: si je fais ceci: "...la COMMANDE PAR (champ+1)" je peux contourner ce problème, car en quelque sorte la chaîne est à l'intérieur être converti en entier. Est-ce une façon de "officiellement" le convertir comme C atoi?
- Comment en êtes-vous le résultat? Êtes-vous sûr que les chaînes de caractères ont zéros ou sont les principaux espaces concernés ainsi?
- La chaîne n'a pas les espaces. J'essayais de trouver un moyen de trier les chaînes contenant des nombres (1,2,3...,10,11,12) sans être triés dans l'1,10,2,3,4,5 de la mode. J'ai ajouté manuellement le 0, j'ai essayé avec des espaces trop, mais je vois maintenant un moulage de la colonne de type ENTIER était le plus intelligent chose à faire en premier lieu.
- Mais
'01'
devrait venir avant'10'
quand ils sont triés comme des chaînes, d'où ma curiosité. Ou dites-vous que vous avez vraiment'1'
plutôt que'01'
dans la base de données? - J'étais curieux de connaître elle aussi, '01' avant '10' triés comme des chaînes, le tri précédent du mécanisme de la plaine de l'ORDRE de la valeur. Je sais que c'est pas la jtable qui re-trié les lignes, je suis perplexe.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
CAST
http://www.sqlite.org/lang_expr.html#castexpr de jeter l'expression d'un Entier.Bien c'est intéressant, même si je ne sais pas combien de
DBMS
appui d'une telle opération, donc je ne le recommande pas, juste au cas où vous avez besoin d'utiliser un autre système qui ne prend pas en charge, de ne pas mentionner l'ajout d'un supplément de fonctionnement, ce qui peut affecter les performances, mais vous pouvez aussi le faireORDER BY (field + 0)
Im va pour étudier la performanceprises à partir de la sqlite3 docs:
J'étais curieux donc j'ai couru quelques repères:
Comme on peut le voir un peu plus lent, mais pas de beaucoup, c'est intéressant.
1%
plus lent vs+ 0
allez comprendre 🙂Vous pouvez utiliser
CAST
:Dans ListView avec chargeur du curseur!
Grâce à Skinnynerd. avec Kotlin, FONTE travaillé comme suit:
FONTE à résoudre les problèmes de la hiérarchisation de 9 sur 10 OU 22 sur 206.
définir les variables à modifier plus tard à la demande, puis de le brancher dans la requête:
pour modifier l'ordre d'utilisation:
Pour descendant:
(du plus élevé au plus bas)
Pour l'ascension:
(du plus bas au plus haut)
CONVERTIR fonction de distribution à l'aide de la commande par la valeur de la colonne format de nombre dans SQL SERVER
SELECT * from Nom_table COMMANDE EN FONTE(COLUMNNAME COMME INT);