Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 22/10/2010 15:04:43
- flo
- Membre
[SQL] Ordre de tri non naturel
Bonjour,
On m'a demandé comment, dans une requête, faire un tri sur une colonne, suivant un ordre de tri "non naturel".
Dans notre cas, on a une table avec des noms de pays, et on veut trier suivant le nom de pays, MAIS on met la ligne avec le nom FRANCE en premier.
Il me semble bien avoir déjà vu passer une question du même type, mais vraiment impossible de remettre la main dessus en faisant des recherches...
Hors ligne
#2 22/10/2010 15:31:30
- gleu
- Administrateur
Re : [SQL] Ordre de tri non naturel
Oui, c'est possible. Si ta colonne s'appelle pays, ça peut donner quelque chose comme : ORDER BY pays='France', pays
Guillaume.
Hors ligne
#3 22/10/2010 15:57:06
- flo
- Membre
Re : [SQL] Ordre de tri non naturel
J'ai fait la requête suivante :
select * from n_code_pays order by libelle='FRANCE', libelle;
Mais cela ramène tous les pays dans l'ordre alphabétique du libellé, sauf la FRANCE.
Hors ligne
#4 22/10/2010 16:00:06
- Marc Cousin
- Membre
Re : [SQL] Ordre de tri non naturel
Ah non
ORDER BY pays='FRANCE' DESC, pays
Sous PostgreSQL, false<true
Ce qui est dangereux, c'est que ça dépend vraiment de comment le SGBD trie les booleens. Je doute donc que ça soit très portable d'un SGBD à l'autre.
Marc.
Hors ligne
#5 22/10/2010 16:00:42
- arthurr
- Membre
Re : [SQL] Ordre de tri non naturel
Il faut rajouter un DESC :
select * from n_code_pays order by pays='FRANCE' desc , pays;
Hors ligne
#6 22/10/2010 16:02:35
- meles
- Membre
Re : [SQL] Ordre de tri non naturel
Oui, c'est possible. Si ta colonne s'appelle pays, ça peut donner quelque chose comme : ORDER BY pays='France', pays
Bonjour,
je viens d'essayer sur une table que j'ai sous la main, et il faut que j'écrive ceci pour avoir l'acte ZZLP025 en premier, puis les auttres dabs le bon ordre :
select * from actes order by ccam = 'ZZLP025' desc, ccam asc
Cordialement
Hors ligne
#7 22/10/2010 16:07:45
- Marc Cousin
- Membre
Re : [SQL] Ordre de tri non naturel
Y a de l'écho aujourd'hui (et c'est très bien, ça veut dire qu'il y a de la vie )
Marc.
Hors ligne
#8 22/10/2010 16:08:13
- flo
- Membre
Re : [SQL] Ordre de tri non naturel
Ah, merci à tous, c'est bon!
C'est mon collègue qui va être content
Hors ligne
#9 22/10/2010 16:12:18
- meles
- Membre
Re : [SQL] Ordre de tri non naturel
Oui,
ça sent le tir groupé du vendredi après midi de ceux qui moulent devant leur poste parce qu'il est définitivement trop tard pour commencer un truc plus important.
Cordialement
Hors ligne
#10 22/10/2010 16:18:04
- meles
- Membre
Re : [SQL] Ordre de tri non naturel
Sous PostgreSQL, false<true
Ce qui est dangereux, c'est que ça dépend vraiment de comment le SGBD trie les booleens. Je doute donc que ça soit très portable d'un SGBD à l'autre.
A la lueur de cette explication, j'ai essayé ceci :
select * from actes order by ccam != 'ZZLP025'
et ceci
select * from actes order by ccam = 'ZZLP025' desc
et ça marche !
Hors ligne
#11 22/10/2010 16:18:07
- gleu
- Administrateur
Re : [SQL] Ordre de tri non naturel
Oups, désolé pour l'oubli du DESC. Bah, on m'en voudra pas trop, j'ai posté ça à 6h31, pas encore bien réveillé
Guillaume.
Hors ligne
#12 22/10/2010 16:24:52
- flo
- Membre
Re : [SQL] Ordre de tri non naturel
Ah, oui je viens de me rappeler que tu es en Californie. Bon courage pour le décalage horaire, et profite bien du voyage
Hors ligne
#13 22/10/2010 16:28:52
- Marc Cousin
- Membre
Re : [SQL] Ordre de tri non naturel
L'encourage pas. Il va croire qu'on est content qu'il soit là-bas
Marc.
Hors ligne
Pages : 1