Tri ORDER BY

Tri ORDER BY - SQL/NoSQL - Programmation

Marsh Posté le 17-05-2004 à 15:47:03    

Bonjour,
Je fais une requête via SqlServer du genre "SELECT * FROM t1 ORDER BY T2".
Voila le résultat 1-10-11-12-13-2-3-4.
Comment je peux faire pour avoir le tri dans l'ordre 1-2-3-4-10-11-12-13.
Merci.

Reply

Marsh Posté le 17-05-2004 à 15:47:03   

Reply

Marsh Posté le 17-05-2004 à 15:49:37    

order by t2 ASC
 
asc = ascendant, pour l'inverse : desc
 
desc = jte laisse deviner ;)

Reply

Marsh Posté le 17-05-2004 à 15:55:40    

Ok,
Mais le probleme c'est que j'ai le 10 à 19 avant le 2.

Reply

Marsh Posté le 17-05-2004 à 15:56:23    

spa grave ca va order tout seul

Reply

Marsh Posté le 17-05-2004 à 15:56:43    

chacal_one333 a écrit :

order by t2 ASC
 
asc = ascendant, pour l'inverse : desc
 
desc = jte laisse deviner ;)


non, il doit essayer de trier des nombres dans un champ de type caractères là...

Reply

Marsh Posté le 17-05-2004 à 15:56:55    

chacal_one333 a écrit :

spa grave ca va order tout seul


non!:o

Reply

Marsh Posté le 17-05-2004 à 15:57:21    

:??:  
 
tu va me dire qu'un order by ca ordonne pas tout seul? [:autobot]


Message édité par Profil supprimé le 17-05-2004 à 15:57:28
Reply

Marsh Posté le 17-05-2004 à 15:58:13    

ton T2 il est de quel type?
Si c'est bien un varchar ou approchant, tu as pas un truc du style to_numer en slq server?

Reply

Marsh Posté le 17-05-2004 à 15:58:39    

chacal_one333 a écrit :

:??:  
 
tu va me dire qu'un order by ca ordonne pas tout seul? [:autobot]


bah si c'est un varchar l'ordre est bien 1 10 11 ....19 2 ...

Reply

Marsh Posté le 17-05-2004 à 15:58:57    

Desolé mais chez moi en tapant la requete "SELECT * FROM t1 ORDER BY T2 ASC", le résultat est 1-10-11-12-13-2-3-4 car dans son language, le 10 = 1+0.
 

Reply

Marsh Posté le 17-05-2004 à 15:58:57   

Reply

Marsh Posté le 17-05-2004 à 15:59:19    

FRED20000 a écrit :

Desolé mais chez moi en tapant la requete "SELECT * FROM t1 ORDER BY T2 ASC", le résultat est 1-10-11-12-13-2-3-4 car dans son language, le 10 = 1+0.


 

skeye a écrit :

ton T2 il est de quel type?
Si c'est bien un varchar ou approchant, tu as pas un truc du style to_numer en sql server?


Message édité par skeye le 17-05-2004 à 15:59:26
Reply

Marsh Posté le 17-05-2004 à 15:59:19    

skeye a écrit :

bah si c'est un varchar l'ordre est bien 1 10 11 ....19 2 ...

c'est vrai, j'avais pas pensé que ca pouvait etre un char

Reply

Marsh Posté le 17-05-2004 à 16:08:38    

Donc si je comprends bien, il n'y a pas de solution avec la requête.
Le problème vient des champs de la BDD.
Dans type j'ai le choix entre Booleen-chaine de caractere-date-entier-Reel.
J'ai tt essayé mais pas de différence.
Faut-il que je trouve un autre champ? De quel type?
J'ai tt essayé mais pas de difference.
Faut-il que je trouve un autre champs? De quel type?

Reply

Marsh Posté le 17-05-2004 à 16:10:14    

FRED20000 a écrit :

Donc si je comprends bien, il n'y a pas de solution avec la requête.
Le problème vient des champs de la BDD.
Dans type j'ai le choix entre Booleen-chaine de caractere-date-entier-Reel.
J'ai tt essayé mais pas de différence.
Faut-il que je trouve un autre champ? De quel type?
J'ai tt essayé mais pas de difference.
Faut-il que je trouve un autre champs? De quel type?


avec un entier ça m'étonnerait que tu obtiennes le résultat que tu décris!:o

Reply

Marsh Posté le 17-05-2004 à 16:14:55    

+1 :D

Reply

Marsh Posté le 17-05-2004 à 16:26:53    

c quoi ton sgbd ?

Reply

Marsh Posté le 17-05-2004 à 16:29:07    

C'est Silog mon SGBD.

Reply

Marsh Posté le 17-05-2004 à 16:38:43    

Essaie  
 
SELECT * FROM t1 ORDER BY cast(T2 as real)

Reply

Marsh Posté le 17-05-2004 à 16:53:44    

Erreur de syntaxe dans "ORDER BY cast(T2 as real)"

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed