Comment faire pour trier la colonne de type varchar (SQL) qui contient le nombre, les caractères, les caractères?
'Order by' renvoie ce résultat ci-dessous
05 05/1-1 05/1-2 05/1-3 05/1-4 05/1-5 05/1-6 05/1-7 05/1 05/2-1 05/2-2 05/2-3 05/2-4 05/2 05/3 05/4
et cet ordre ci-dessous est OK
05 05/1 05/1-1 05/1-2 05/1-3 05/1-4 05/1-5 05/1-6 05/1-7 05/2 05/2-1 05/2-2 05/2-3 05/2-4 05/3 05/4
Est-il un moyen de faire cela?
OriginalL'auteur davorn | 2009-02-12
Vous devez vous connecter pour publier un commentaire.
Si possible, essayez de séparer les données, de sorte que toute information numérique est dans son propre champ.
La chaîne de données numériques et des données dans un champ sera toujours le résultat dans la chaîne de type de données, de sorte que 'A2' > 'A11'.
OriginalL'auteur tehvan
Vous avez besoin de cast/convertir les données varchar à un type de données numérique et ensuite effectuer une commande par tri sur les données.
Vous aurez probablement besoin de diviser votre chaîne de données, également, de sorte exemple la commande par caluse pourrait être:
Cela dépendra des éléments de chaîne de représenter qui date de composants.
Sens?
OriginalL'auteur John Sansom
Modifier la table et ajouter une comparaison de la colonne. Écrire un petit programme qui lit les cordes et les convertit dans un format de la base de données peut convertir. Dans votre cas, une DATE est un bon candidat, je suppose.
Dans le cas général, l'utilisation d'une colonne de type VARCHAR et le format de tous les nombres à cinq (ou plus) chiffres (avec des zéros à gauche/espaces, c'est à dire aligné à droite).
Après cela, vous pouvez utiliser le comparer colonne à l'ordre les données.
OriginalL'auteur Aaron Digulla
Si j'étais vous, je voudrais commander par une délicate expression. Supposons que, avant une barre oblique, vous disposez d'au plus 2 ou 3 chiffres. Si vous écrivez:
Si je n'ai pas fait une faute de frappe quoi que ce soit, les éléments suivants doivent convertir 05 à 5000, 05/1 à 5001, 05/1-1 à 5001.1, et les choses de tri à la façon dont vous le souhaitez, en supposant que vous avez toujours un seul chiffre au plus après le trait d'union. Sinon, vous pouvez probablement le contourner par le fractionnement et la gauche-rembourrage avec le bon nombre de zéros, mais l'expression serait beaucoup plus laid ...
OriginalL'auteur