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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [RESOLU][ORACLE] "Personnalisation" d'un ORDER

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[RESOLU][ORACLE] "Personnalisation" d'un ORDER

n°1870490
jocastt
Posté le 07-04-2009 à 11:30:23  profilanswer
 

Salut à tous !  
Je bosse sur un gros site avec tout plein de données :)
 
Je cherche à faire apparaitre la liste d'une équipe, en les classant par leur statut.
Bien évidemment dans ma table, le statut des personnes est symbolisé par un numéro.
1 => associé
2 => secrétaire
3 => manager
4 => collaborateur
 
Donc si je fais un order tout bete dans ma requete, le classement se fait bien, mais à l'affichage le rendu laisse perplexe les utilisateurs, qui sont en droit d'attendre un classement par ordre alphabetique des intitulés, et non des ids de la table.
 
Alors ma question est la suivante.
Est-il possible de 'personnaliser' le ORDER dans une requete SQL Oracle, un truc du genre ORDER BY STATUT(1,4,3,2) :/
(Je n'ai que 4 statuts différents, donc je ne veux pas créer une ennième table qui pourrait s'appeler intitulés et trier dessus).
Je ne peux pas non plus changer l'id des statuts (qui attribuent des droits sur beaucoup beaucoup de pages)
J'espere que vous m'avez suivi.
 
Je vous remercie pour les réponses ;)

Message cité 1 fois
Message édité par jocastt le 08-04-2009 à 13:51:24
mood
Publicité
Posté le 07-04-2009 à 11:30:23  profilanswer
 

n°1870492
skeye
Posté le 07-04-2009 à 11:54:17  profilanswer
 

select num_statut, decode(num_statut, 1, 'Associé', 2, 'Secrétaire', ...) as lib_statut
from statut
order by lib_statut

 

:??:

 

(puis sinon faire un tri dans le langage qui traite le résultat de la requête et affiche la liste ça doit pas être bien compliqué...)

Message cité 1 fois
Message édité par skeye le 07-04-2009 à 11:55:23

---------------
Can't buy what I want because it's free -
n°1870522
yellu
Posté le 07-04-2009 à 12:57:49  profilanswer
 

Tu peux créer une variable additionnelle dans ta requete avec un CASE/SWITCH
si status = 1 tu lui met 1 si status = 4 tu lui met 2, etc ...
Tu nommes cette variables mon_tri
Et tu fais order by mon_tri

n°1870523
skeye
Posté le 07-04-2009 à 12:58:30  profilanswer
 

yellu a écrit :

Tu peux créer une variable additionnelle dans ta requete avec un CASE/SWITCH
si status = 1 tu lui met 1 si status = 4 tu lui met 2, etc ...
Tu nommes cette variables mon_tri
Et tu fais order by mon_tri


 
t'as pas l'impression que c'est ce que je fais, mais avec les noms?[:dawak]


---------------
Can't buy what I want because it's free -
n°1870526
macgawel
Posté le 07-04-2009 à 13:05:15  profilanswer
 

skeye a écrit :

select num_statut, decode(num_statut, 1, 'Associé', 2, 'Secrétaire', ...) as lib_statut
from statut
order by lib_statut  
 
:??:
 
(puis sinon faire un tri dans le langage qui traite le résultat de la requête et affiche la liste ça doit pas être bien compliqué...)

:lol:  
Le jour où les secrétaires sont "promus" en "adjoints délégués à la rédaction", il faut modifier la table et modifier le decode.
Pareil si on rajoute un statut...
A la limite, si c'est pour faire ça autant directement mettre le statut en clair dans la table !
 
La seule solution :
Tu as évidemment une table à part STATUTS (Id_statut,Libelle) (et sinon, dépêche-toi de la créer...)

Code :
  1. SELECT s.libelle, u.nom
  2. FROM statuts s, users u
  3. WHERE u.id_statut = s.id_statut
  4. ORDER BY s.libelle

n°1870527
skeye
Posté le 07-04-2009 à 13:07:26  profilanswer
 

macgawel a écrit :

Le jour où les secrétaires sont "promus" en "adjoints délégués à la rédaction", il faut modifier la table et modifier le decode.


 
sans blague?[:moule_bite]
Il dit lui même qu'il ne veut pas créer de nouvelle table, apprends à lire avant de te foutre des gens qui y arrivent.


---------------
Can't buy what I want because it's free -
n°1870534
macgawel
Posté le 07-04-2009 à 13:22:24  profilanswer
 

skeye a écrit :

Il dit lui même qu'il ne veut pas créer de nouvelle table, apprends à lire avant de te foutre des gens qui y arrivent.

Au temps pour moi...  :o  
Dans ce cas, c'est sûr qu'un decode est ce qu'il y a de mieux.
 
 
Ceci-dit, et parce que je ne peux quand-même pas avoir complétement tort... :ange:

jocastt a écrit :

Je bosse sur un gros site (...)
Bien évidemment dans ma table, le statut des personnes est symbolisé par un numéro.
(...)
(Je n'ai que 4 statuts différents, donc je ne veux pas créer une ennième table qui pourrait s'appeler intitulés et trier dessus).

C'est mal ! (si c'est vraiment que tu ne veux pas, c'est de la fainéantise mal placée...)
Ca ne prend pas des masses de temps de créer une "énième" table, surtout vu ce qu'il y a à mettre dedans.
Et ça te simplifiera la vie, par exemple pour cette requête...

n°1870543
couak
Posté le 07-04-2009 à 13:50:43  profilanswer
 

+1 pour macgawel

n°1870545
yellu
Posté le 07-04-2009 à 13:57:40  profilanswer
 

skeye a écrit :


 
t'as pas l'impression que c'est ce que je fais, mais avec les noms?[:dawak]


Désolé, roooh

n°1870560
kao98
...
Posté le 07-04-2009 à 14:35:16  profilanswer
 

couak a écrit :

+1 pour macgawel


+2 !
 
Depuis quand on fait l'économie de table dans un SI ?


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
mood
Publicité
Posté le 07-04-2009 à 14:35:16  profilanswer
 

n°1870561
skeye
Posté le 07-04-2009 à 14:36:28  profilanswer
 

kao98 a écrit :

Depuis quand on fait l'économie de table dans un SI ?


 
C'est pas nos oignons.[:cosmoschtroumpf]
D'autant qu'on ne sait pas ce qu'il appelle un "gros" site.[:joce]


---------------
Can't buy what I want because it's free -
n°1870570
kao98
...
Posté le 07-04-2009 à 14:44:45  profilanswer
 

skeye a écrit :


 
C'est pas nos oignons.[:cosmoschtroumpf]
D'autant qu'on ne sait pas ce qu'il appelle un "gros" site.[:joce]


C'est vrai.
Et s'il avait dit "je ne peux pas ...", alors bon. Ok. Mais là, c'est juste un "je ne veux pas ...". Ca fait tiquer ! Ca veut dire que c'est pas une contrainte, mais un choix délibéré. Et ce choix n'est, a priori, pas bon. On essaye juste de le lui faire reconsidérer ! :o


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
n°1871041
jocastt
Posté le 08-04-2009 à 12:52:01  profilanswer
 

kao98 a écrit :


C'est vrai.
Et s'il avait dit "je ne peux pas ...", alors bon. Ok. Mais là, c'est juste un "je ne veux pas ...". Ca fait tiquer ! Ca veut dire que c'est pas une contrainte, mais un choix délibéré. Et ce choix n'est, a priori, pas bon. On essaye juste de le lui faire reconsidérer ! :o


Salut les gens! :hello:  
Bon pour m'expliquer un peu sur le : "Je ne veux pas", c'est que j'ai repris le bébé en milieu de développement et qu'il est quasiment un production. (les clients qui commencent à chouiner etc...), donc c'est vrai que ca me gave un peu, professionnellement, d'avoir à créer des tables pendant le débogage quoi. :ange:  
 
Donc le "ne veux pas" c'est plus, ne pas avoir à repasser derrière une conception mal ficelée. :whistle:  
 
Bon, cela dit, si je dois passer par la création d'une table pour que l'affichage des données corresponde aux souhaits de mes rois, soit ! :bounce:  
(d'autant plus qu'elle va être vite-fait, mais bon le ORDER personnalisable ne serait pas une idée de dev à creuser ?  :p )
 
En tout cas merci à tous pour vos petits messages ;)  :hello:

n°1871087
macgawel
Posté le 08-04-2009 à 14:18:02  profilanswer
 

jocastt a écrit :

le ORDER personnalisable ne serait pas une idée de dev à creuser ?  :p


Pas sûr :
Si on respecte les principes des BDD-Relationnelles, on ne doit pas avoir à faire un ORDER "personnalisé".
Au pire, ça répond à une logique fonctionnelle qui doit être implémentée plutôt du côté programme que du côté SQL


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

  [RESOLU][ORACLE] "Personnalisation" d'un ORDER

 

Sujets relatifs
placer un uint>255 dans un buffer [résolu][Résolu] Ajax, XMLhttpRequest, interrogation multiples et simultannées
placement de texte[résolu]Problème d'occurence variable [RESOLU]
[Résolu] Edit mono-ligne avec retour à la ligne ?[Résolu] Comparatif IBM Rational Application Developer / Eclipse
[Résolu]Syntaxe dans un script phprecherche dans un recordset [Résolu]
Javascript : pb avec des Frames (résolu)'order by' un peu complexe
Plus de sujets relatifs à : [RESOLU][ORACLE] "Personnalisation" d'un ORDER


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