Posez votre question Signaler

SQL trier des nombres "logiquement" [Résolu]

Vincent - Dernière réponse le 3 sept. 2008 à 13:45
Bonjour,
Une question toute simple dont je n'ai pas la réponse ;)
J'ai une table :
ID | Dept | Nom
1 | 1 | Ain
2 | 58 | Nièvre
3 | 10 | Aube
4 | 2 | Aisne
Quand je fais un ORDER BY Dept, j'ai
ID | Dept | Nom
1 | 1 | Ain
3 | 10 | Aube
4 | 2 | Aisne
2 | 58 | Nièvre
Alors que j'ai besoin de :
ID | Dept | Nom
1 | 1 | Ain
4 | 2 | Aisne
3 | 10 | Aube
2 | 58 | Nièvre
Comment faire pour trier de la bonne manière ?
Merci de votre aide
Vincent
Lire la suite 

SQL trier des nombres "logiquement" »

6 réponses
Réponse
+1
moins plus
Bonjour,

Avant de pouvoir t'aider, j'ai besoin de deux petits renseignements:
1°) Quelle base de données utilises-tu ? (Mysql , Access, Sql Server, ....)
2°) De quel type est la colonne Dept ? (Numérique, Caractère , ...)
Merci et a plus
Ajouter un commentaire
Réponse
+1
moins plus
Bonjour

Tu as sûrement défini ton champ Dept comme étant un type texte, et tu veux le trier comme numérique.
Tu peux modifier son type qpour qu'il soit numérique (ce qui semble plus logique, mais peut avoir des conséquences ailleurs dans ton application) ou forcer explicitement la manière de trier :
ORDER BY CAST (`Dept` AS UNSIGNED)
Ajouter un commentaire
Réponse
+1
moins plus
Re ;)

Merci de vos réponses !

Christounet : j'utilise mysql et le champ est texte à cause de la corse (2A et 2B).

Toto : Sql me renvoie une erreur avec "UNSIGNED".

Vous y voyez plus clair ???

Vincent
Ajouter un commentaire
Réponse
+1
moins plus
Bonjour Vincent,

En fait tu ne peux pas convertir ta colonne vers un nombre car elle contient parfois des lettres, par contre le code suivant devrait faire ce que tu veux
SELECT id , Dept, Nom
FROM nomdetatable
ORDER BY LPAD(Dept,2,'00')

L'instruction LPAD va rajouter un ou deux zéros ou aucun devant la variable Dept
Exemple:
Dept = 1 , LPAD(Dept,2,'00') = 01
Dept = 10 , LPAD(Dept,2,'00') = 10

A plus
Ajouter un commentaire
Réponse
+1
moins plus
Et Dieu créa Christounet !

Bravo, ca marche nickel, merci !
Christounet- 3 sept. 2008 à 13:45
Bonjour Vincent,
Bien content pour toi que cela fonctionne.
Très bonne journée et à plus
Ajouter un commentaire
Ce document intitulé « SQL trier des nombres "logiquement" » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?