Page 1 sur 1

classer par ordre croissant sauf 0

Posté : 26 mai 2009, 15:06
par Invité
Bonjour,

voila je sais pas si c'est possible, lorsque je fais afficher mes enregistrements je veux qu'il soit affiché par ordre croissant, donc pour ça dans ma requête order by. Mais je voudrai que si il y a des 0 celui ci soit pas au début mais a la fin.

merci d'avance

Posté : 26 mai 2009, 18:33
par AB
A moins de faire un tri en recréant un tableau d'après le résultat de ta requête, je vois pas.

Posté : 26 mai 2009, 18:41
par zeus
Tu as aussi la possibilité de faire un

Code : Tout sélectionner

ORDER BY CASE tonChamp = 0 WHEN 99999999 THEN tonChamp
, ce qui reviens à transformer ton 0 en 99999999 et donc le mettre à la fin

Toutefois, mise en garde

1/ Avec cette astuce, aucun index sur le champ ne pourra être utilisé, et ta requête pourrait devenir très longue

2/ Tu prends le risque que, un jour, un nombre dépasse le chiffre que tu places et tu vas te retrouver avec ton 0 au milieu des autres enregistrements.
Et à la réponse "il faut choisir un nombre plus grand", je rétorque que ce n'est que déplacer le problème sous le tapis en attendant qu'il se reproduise.

Posté : 26 mai 2009, 18:50
par Patriboom
Avec la méthode de Zeus poussée un peu plus, tu peux remplacer tes 0 par une lettre, les lettre viendront après les nombres, peu importe la taille des nombres.