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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Tri par numéro de colonne

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Tri par numéro de colonne

n°226712
Dertron
Posté le 11-10-2002 à 14:10:48  profilanswer
 

Salut,
 
Je cherche à trier une requête SQL en précisant non pas le nom du champ, mais son indice.
Un exemple de table :  
       communes : ref, nom
Ma requête :
       SELECT * FROM communes ORDER BY "deuxième colonne" !!!
(je ne veux pas utiliser ORDER BY nom, car ça doit pouvoir servir pour d'autres tables...).
Merci de votre aide !

mood
Publicité
Posté le 11-10-2002 à 14:10:48  profilanswer
 

n°226714
MagicBuzz
Posté le 11-10-2002 à 14:11:40  profilanswer
 

Order by 1 ou autre
 
Mais ça doit pas marcher avec *, étant donné que * ne garantis aucunement l'ordre des colonnes.

n°226717
Dertron
Posté le 11-10-2002 à 14:15:05  profilanswer
 

MagicBuzz a écrit a écrit :

Order by 1 ou autre
 
Mais ça doit pas marcher avec *, étant donné que * ne garantis aucunement l'ordre des colonnes.




 
Ca marche nickel !!! Comme quoi, des fois faut pas chercher midi à quatorze heure... Merci pour ton aide.
 
Et si on veut récupérer seulement les 2 premières colonnes, comment on fait ? "SELECT 1,2 FROM commune" ça marche pas !!! :non:  (j'ai essayé de trouver midi à midi, mais ça marche pas à tous les coups...)


Message édité par Dertron le 11-10-2002 à 14:17:44
n°226721
MagicBuzz
Posté le 11-10-2002 à 14:17:35  profilanswer
 

OK. C'est tout de même étonnant que avec * ça marche.
 
Si tu as un moyen de ne pas passer par *, fais-le, ça sera plus propre et plus portable. Et surtout ça t'évitera des bugs si un jour du modifie la structure de la table ;)

n°226722
Dertron
Posté le 11-10-2002 à 14:19:25  profilanswer
 

MagicBuzz a écrit a écrit :

OK. C'est tout de même étonnant que avec * ça marche.
 
Si tu as un moyen de ne pas passer par *, fais-le, ça sera plus propre et plus portable. Et surtout ça t'évitera des bugs si un jour du modifie la structure de la table ;)




 
Oui d'accord, mais il faut que j'arrive à faire mes select sur les numéros de champ, et non sur leur nom... (cf mon sujet précédent !)

n°226724
MagicBuzz
Posté le 11-10-2002 à 14:24:34  profilanswer
 

Explique plus en détail ce que tu veux faire.
 
Parceque notamment, pour savoir si tu trie sur la colonne 1, 2 ou 20, il faut bien que tu aies connaissance de la structure de la table non ?

n°226844
Dertron
Posté le 11-10-2002 à 16:13:50  profilanswer
 

MagicBuzz a écrit a écrit :

Explique plus en détail ce que tu veux faire.
 
Parceque notamment, pour savoir si tu trie sur la colonne 1, 2 ou 20, il faut bien que tu aies connaissance de la structure de la table non ?




 
Ben non, en fait, puisque le principe, c'est d'avoir une requête qui marche pour toute une famille de tables qui sont construites sur le même modèle. A savoir :  
    premier champ : référence
    deuxième champ : nom (égal au nom de la table)
    troisième champ et suivants : variable selon les tables.
J'ai besoin d'une requête qui devra toujours retourner la référence, le premier champ (dont le nom varie en fonction du nom de la table), le tout trié selon le deuxième champ.
J'utilise SELECT * FROM matable  ORDER BY 2
C'est bien, mais je promène tous les champs de ma table, alors que je n'ai besoin que des deux premiers... Comment faire, donc, pour ne sélectionner que les deux premiers champs .

n°226846
MagicBuzz
Posté le 11-10-2002 à 16:15:01  profilanswer
 

renomer proprement tes champs :D

n°226854
Dertron
Posté le 11-10-2002 à 16:21:58  profilanswer
 

MagicBuzz a écrit a écrit :

renomer proprement tes champs :D




 
Ben justement, c'est pas forcément une bonne idée, car dans un soucis de relecture, on essaie toujours de mettre des noms parlants, au lieu de noms génériques. Sinon, c'est sur, je peux toujours appeler le champ 1 "champ1" et le champ 2 "champ2"... Enfin, c'est peut-être un débat philosophique (quoi que...), mais tu n'as donc pas une idée pour adresser directement les colonnes ?
Sinon, merci quand même pour le coup de main !

n°226856
MagicBuzz
Posté le 11-10-2002 à 16:25:31  profilanswer
 

Ben tu peux mettre "ref" pour le premier et "tablename" pour le second par exemple (quoique j'ai pas tout compris ce qu'est ce second champs)
 
Puis pour les autres champs tu les laisse comme ils sont vu que tu ne t'en sert pas...

mood
Publicité
Posté le 11-10-2002 à 16:25:31  profilanswer
 

n°226871
vttvolant
Posté le 11-10-2002 à 16:34:43  profilanswer
 

il est peut etre possible de recuperer avant le nom des 2 premieres colonnes en faisant un select du nom de la table dans allobjets

n°226872
MagicBuzz
Posté le 11-10-2002 à 16:35:37  profilanswer
 

vttvolant a écrit a écrit :

il est peut etre possible de recuperer avant le nom des 2 premieres colonnes en faisant un select du nom de la table dans allobjets




yep, c'est pas bête ça :jap:
 
un peu lourd mais bon :)


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

  Tri par numéro de colonne

 

Sujets relatifs
Trouver un numero de ligne dans MySQL[PHP] Obtenir le numéro de la semaine
[MySQL] comment lire juste une colonne d'une tableRécupérer le numéro de la ligne active ?
[Oracle] numéro de ligne[mysql] ajouter une colonne sans crasher si elle existe?
[Visual C++] Incrémenter le numero de version automatiquement[Interbase] Colonne avec valeur unique sans PK
Tri d'un tableau selon plusieurs critères + affichage d'icone[Pascal] Tri fusion
Plus de sujets relatifs à : Tri par numéro de colonne


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