Tri par numéro de colonne - SQL/NoSQL - Programmation
Marsh Posté le 11-10-2002 à 14:11:40
Order by 1 ou autre
Mais ça doit pas marcher avec *, étant donné que * ne garantis aucunement l'ordre des colonnes.
Marsh Posté le 11-10-2002 à 14:15:05
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 !!! (j'ai essayé de trouver midi à midi, mais ça marche pas à tous les coups...)
Marsh Posté le 11-10-2002 à 14:17:35
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
Marsh Posté le 11-10-2002 à 14:19:25
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 !)
Marsh Posté le 11-10-2002 à 14:24:34
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 ?
Marsh Posté le 11-10-2002 à 16:13:50
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 .
Marsh Posté le 11-10-2002 à 16:21:58
MagicBuzz a écrit a écrit : renomer proprement tes champs |
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 !
Marsh Posté le 11-10-2002 à 16:25:31
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...
Marsh Posté le 11-10-2002 à 16:34:43
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
Marsh Posté le 11-10-2002 à 16:35:37
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
un peu lourd mais bon
Marsh Posté le 11-10-2002 à 14:10:48
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 !