Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1156 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [SQL] Trier par ordre croissant après une valeur

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[SQL] Trier par ordre croissant après une valeur

n°1849691
aspirateur
Posté le 11-02-2009 à 10:20:28  profilanswer
 

Salut,
 
J'ai une petite question, je sais pas si SQL permet de faire ca.
 
Je voudrai faire une requete qui affiche des villes (par exemple) par ordre alphabétique après une valeur.
 
Exemple:
Villes: Lyon, Nice, Paris, Marseille, Arles
 
Je voudrai afficher les villes par ordre alphabétique en mettant Paris en premier, ce qui donnerai:
 
Paris - Arles - Lyon - Marseille - Nice
 
C'est possible?

mood
Publicité
Posté le 11-02-2009 à 10:20:28  profilanswer
 

n°1849725
macgawel
Posté le 11-02-2009 à 11:15:08  profilanswer
 

Bonjour.
 
Non, ce n'est pas possible - du moins pas facilement.
Et c'est normal, SQL n'est pas fait pour. Un tri s'effectue sur toutes les valeurs, sinon c'est que les valeurs sont mal choisies.
 
Par exemple, dans ton cas, il faudrait trier surt un autre champ - au hasard on crée "Capitale" (binaire), qui vaut 1 pour Paris et 0 pour le reste. Et il suffit de trier sur ce champ puis sur le nom.
Ou alors, utiliser le champ Id...

n°1849729
aspirateur
Posté le 11-02-2009 à 11:21:54  profilanswer
 

Ouais c'est bien ce que je pensais. En tout cas merci de ta réponse.
 
Je pense faire 2 requetes l'une à la suite de l'autre. L'une avec la ville prioritaire et une autre avec les autres villes classées par ordre alphabetique.

n°1849760
vttman2
Je suis Open ...
Posté le 11-02-2009 à 11:42:26  profilanswer
 

tu pourrais faire un truc dans le style (ex: Oracle)
si t'as pas 200 villes à Trier  
=>
select decode (ville ='Paris',1,decode('Arles',2,decode('wazZZAA',3,4))), ville from matable
order by 1
 
* résultat *  
1 Paris
2 Arles
3 WazZZAA
4 Rouen
4 Metz  
...  


---------------
il n'y a pas que le VTT dans la vie, il y a le Snowboard aussi ...
n°1849765
vttman2
Je suis Open ...
Posté le 11-02-2009 à 11:44:30  profilanswer
 

ou mieux ;-)
=>
select decode (ville ='Paris',1,2), ville from matable  
order by 1, ville  


---------------
il n'y a pas que le VTT dans la vie, il y a le Snowboard aussi ...
n°1849782
aspirateur
Posté le 11-02-2009 à 11:55:50  profilanswer
 

Merci, je vais creuser un peu de select decode

n°1849795
vttman2
Je suis Open ...
Posté le 11-02-2009 à 12:01:00  profilanswer
 

select decode (ville ='Paris',1,2), ville from matable  
order by 1, ville  
 
=>
 
1 Paris  
2 Arles  
2 Metz  
2 Rouen  
2 WazZZAA  
...


---------------
il n'y a pas que le VTT dans la vie, il y a le Snowboard aussi ...
n°1849821
aspirateur
Posté le 11-02-2009 à 12:31:51  profilanswer
 

Avec Mysql ca me donne une erreur:
 
Voila ma requete:

Code :
  1. SELECT decode( cabinet = 'Menton', 1, 2 ) , cabinet
  2. FROM user
  3. ORDER BY 1 , cabinet
  4. LIMIT 0 , 30


 
Et voici l'erreur:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1 , 2 ) , cabinet from user  order by 1 , cabinet
LIMIT 0, 30' at line 1  
 

n°1849835
omega2
Posté le 11-02-2009 à 13:03:20  profilanswer
 

Ce "decode", c'est pas une invention d'oracle?
Moi, j'aurais plutôt utilisé un "if( cabinet = 'Menton', 1, 2 )" avec mysql.
 
PS : pour DECODE avec mysql : http://dev.mysql.com/doc/refman/5. [...] tions.html
On est plus du tout dans le même registre. Il faut faire gaffe quand on utilise des extensions propriétaires.

n°1849838
vttman2
Je suis Open ...
Posté le 11-02-2009 à 13:15:39  profilanswer
 

si si omega2 => decode c'est de la sauce Oracle  
 
il faut trouver l'équivalent pour le sgbd utilisé : if, iif, case ...
 
Bon on avance, c'est le principal ;-)


---------------
il n'y a pas que le VTT dans la vie, il y a le Snowboard aussi ...
mood
Publicité
Posté le 11-02-2009 à 13:15:39  profilanswer
 

n°1849839
aspirateur
Posté le 11-02-2009 à 13:16:20  profilanswer
 

Oui on avance, merci les gars... je vais voir du coté des if

n°1849866
omega2
Posté le 11-02-2009 à 14:23:17  profilanswer
 

vttman2 a écrit :

si si omega2 => decode c'est de la sauce Oracle  
 
il faut trouver l'équivalent pour le sgbd utilisé : if, iif, case ...
 
Bon on avance, c'est le principal ;-)

C'est vraiment domage que ce genre de chose ne soit pas normalisé. Ca nous faciliterait la tache quand on doit faire des requêtes portable un peu évolué.

n°1852934
MagicBuzz
Posté le 19-02-2009 à 13:24:39  profilanswer
 

Ben, à la base, C'EST normalisé.
 
Sauf que le déposiaire initial de la norme (à savoir, Oracle) n'a jamais été foutu de respecter sa propre norme.
 
Depuis, c'est plus Oracle qui gère la norme, mais ils n'ont pas cherchés à s'en rapprocher. ^^
 
MySQL et SQL Server font au moins cet effort, même si y'a encore du boulot


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [SQL] Trier par ordre croissant après une valeur

 

Sujets relatifs
Visio 2007 et SQL Serverjavascript : récupérer valeur champs dans une autre page
[PL/SQL Oracle] If qui s'appuie sur un select ?valeur du site Internet Raid'IST
Intégrer le nom de l'ordinateur dans une valeur du registre.probleme requet SQL
Questions sur week planner PHP/SQL[PHP] Valeur précédente dans Array
[RESOLU] [SQL Server] Restaurer un backup dans une base différenteCode pour trier un tableau par insertions simples??
Plus de sujets relatifs à : [SQL] Trier par ordre croissant après une valeur


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR