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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  faire retouner plusieurs ligne a une requete

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

faire retouner plusieurs ligne a une requete

n°1779734
donny3
Posté le 29-08-2008 à 11:50:34  profilanswer
 

salut,
 
J'ai un table comme celle ci  
 

Citation :


A   B  C
1   1   cr1:cr2
2   1   ab
3   1   br


 
 
Ce que je souhaiterai, c'est que pour les lignes ou j'ai plusieurs valuers dans la colonne C,je retourne la ligne en double
 
exemple si je fais un select * from matable je voudrais ceci :

Citation :

1 1 cr1
1 1 cr2
2 1 ab
3 1 br


 
est-ce possible ?
ou cela releve de l'utopie .
 
merci de votre aide
 

mood
Publicité
Posté le 29-08-2008 à 11:50:34  profilanswer
 

n°1779859
olivthill
Posté le 29-08-2008 à 13:01:41  profilanswer
 

Si une base de données contient ce genre de choses, elle est mal faite, car elle contrevient à la première règle de normalisation edictée par E. Codd (règles hélas trop méconnues) qui dit qu'une donnée ne doit contenir qu'une seule informotion et non pas plusieurs, sinon il faudrait faire plusieurs champs.
Comme SQL a été conçu prioritairement pour traiter les bases de données relationnelles (celles qui respectent les règles de normalisation), il n'est pas facile de retourner deux enregisrements à partir d'un seul.
Mais c'est tout de même faisable, avec par exemple quelque chose ressemblant à ceci :

Select substr(champ1, 1, instr(champ1, ":" )), autreschamps
  From matable
Union
Select substr(champ1, instr(champ1, ":" ), len(champ1)), autreschamps
  From matable

n°1780005
donny3
Posté le 29-08-2008 à 14:47:17  profilanswer
 

je suis d'accord avec toi mais je ne peux pas modifier le modele;
ta requete me ramene les bonne ligne apparament, le truc c'est que j'ai la virgule dans le resultat
 

Citation :


1 1 cr1;  
1 1 ;cr2  
2 1 ab  
3 1 br

n°1780011
MagicBuzz
Posté le 29-08-2008 à 14:52:47  profilanswer
 

ouais ben regarde la doc de substr() et ajoute les +1 et -1 là où il faut... on va pas non plus t'écrire ton application :o

n°1781417
donny3
Posté le 02-09-2008 à 14:01:54  profilanswer
 

j'ai juste un petit soucis,
si dans ma colonne C j'ai plus de deux valeur par exemple :
cr1;cr2;cr3 cela ne fonctionne plus,
la requete tourne mais ne ramene rien

n°1781436
MagicBuzz
Posté le 02-09-2008 à 14:39:12  profilanswer
 

et dans ce cas, il faut passer par une fonction :spamafote:
 
recherche "split" dans google. tu devrais trouver des exemples de code pour écrire ta fonction.

n°1781529
donny3
Posté le 02-09-2008 à 17:02:15  profilanswer
 

ok,en faite j'ai trouver un truc en sqlserver et qui fonctionne,nikel, mais le probleme est que je suis sous oracle et du coup sa ne marche pas, car oracle a pas cette fonctionnalité

n°1781530
MagicBuzz
Posté le 02-09-2008 à 17:03:05  profilanswer
 

ben oracle sait faire du pl/sql donc tu chercher "split function pl/sql" dans google et t'auras ta réponse :spamafote:

n°1781531
MagicBuzz
Posté le 02-09-2008 à 17:04:32  profilanswer
 

(genre http://articles.techrepublic.com.c [...] 59821.html )


Message édité par MagicBuzz le 02-09-2008 à 17:04:46
n°1781538
donny3
Posté le 02-09-2008 à 17:11:40  profilanswer
 

je vais chercher mais pas tout de suite, si ça prend trop de temps à faire , je pense que je vais me lancer la dedans


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

  faire retouner plusieurs ligne a une requete

 

Sujets relatifs
Une requete mySQL qui ne classe pas les résultatsReqûête qui a l'air simple... Mais en fait pas du tout!
Plusieurs batchAccelerer ma requete qui dure 1min30
Ma requete tourne pas rond !Requete pour mettre à jour une partie d'un champ
[Delphi]Plusieurs SendText !Fichiers texte : taille maximale d'une ligne ?
récupération données dans plusieurs classeursRequete SQL Datetime
Plus de sujets relatifs à : faire retouner plusieurs ligne a une requete


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