Sql tri?!!!

cs_abari Messages postés 89 Date d'inscription mardi 3 août 2004 Statut Membre Dernière intervention 20 février 2006 - 3 déc. 2004 à 11:26
cs_fabrice69 Messages postés 1765 Date d'inscription jeudi 12 octobre 2000 Statut Membre Dernière intervention 11 décembre 2013 - 25 déc. 2004 à 16:10
salut tout le monde

j'ai un probléme de tri?!!!

dans ma table les enregistrement sont stockées d'une facon des ordonnées comme suit:
code nom prénom ....................
1 x x ....................
20 y y ....................
7 f f ....................
.
.
.
10 c c ....................
.
.
.
.
.

et dans mon code asp,j'excute la requette suivante:

SQL="SELECT * FROM TABLE ORDER BY TABLE.CODE ASC;"
set recd =DBase.Execute(SQL)

le resultat ca donne le suivant:
code nom prénom ....................
1 x x ....................
10 c c ....................
11 d d ....................
y y ....................
.
.
.
.
2 b b ....................
.
.

au lieu de donner

le resultat ca donne le suivant:
code nom prénom ....................
1 x x ....................
2 y y ....................
.
.
.
.
9 b b ....................
10 c c ....................
11 d d ....................

(1,10,11,......,100,101 ....) au lieu de(1,2,3.................)

y a til une solution de tri pour les entiers??

2 réponses

glplpmat Messages postés 70 Date d'inscription mercredi 11 juin 2003 Statut Membre Dernière intervention 2 octobre 2006 1
6 déc. 2004 à 17:18
dans quel format sont tes colonnes ?

Tu doit avoir une colonne numerique
ou essaie
... ORDER BY TO_NUMBER(TABLE.CODE) si tu utilise oracle
(n'existe pas dans les autres bases)

glplpmat
0
cs_fabrice69 Messages postés 1765 Date d'inscription jeudi 12 octobre 2000 Statut Membre Dernière intervention 11 décembre 2013 5
25 déc. 2004 à 16:10
Cela vient sans doute du fait que le code n'est pas dans ton cas de type int ou numeric. donc le tri en question est fait suivant l'ordre en chaine de charactere (string) et donc

11111111 est avant 20000

alors que c'est faut en integer

Il faut donc convertir (en étant bien sur que ce sont bien des entiers) en int le champs code avant le asc
comme l'a dit glplpmat tu dois caster la valeur du champs en int

En SQL Server, il existe Cast ou convert, tu trouveras les informations la dessus ici :
- http://sql.developpez.com/

Romelard Fabrice (Alias F___)
0
Rejoignez-nous