IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Oracle Discussion :

Données d'une ligne sur deux lignes ?


Sujet :

SQL Oracle

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 80
    Points : 43
    Points
    43
    Par défaut Données d'une ligne sur deux lignes ?
    Bonjour,


    J'ai une table oracle où la ligne d'un champ est sur deux lignes.

    Exemple:
    Résultat si je fais un select sur une ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT DESCRIPTION FROM GF_DOSSIER WHERE POSTE = '289002';
     
    Résultat:
    POSTE 289002 KOMMERLING
    POSTE MIXTE
    Il me renvoie le résultat sur deux lignes au lieu de me renvoyer qu'un seule ligne.

    Comment faire pour qu'il me renvoie le résultat sur une ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    POSTE 289002 KOMMERLING POSTE MIXTE
    Ce n'est pas une longeur de linesize, les données sont sur deux lignes dans la table...

    Merci pour votre aide!

  2. #2
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Cherchez des requêtes pivot.

  3. #3
    Membre confirmé Avatar de rvfranck
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 746
    Points : 534
    Points
    534
    Par défaut
    ça aussi peut t'aider:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT MAX(SYS_CONNECT_BY_PATH(description,' ')) description_concatenee
    FROM (
              SELECT roman67.*,
              ROW_NUMBER() OVER (PARTITION BY poste ORDER BY poste) ligne
              FROM gf_dossier roman67
              WHERE poste = '289002')
    START WITH ligne=1
    CONNECT BY PRIOR poste=poste AND PRIOR ligne = ligne -1

  4. #4
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Moi j'ai pas bien saisi le problème.
    Ce serait bien cette requête avec rownum.

    Moi, j'ai compris qu'il y avait un retour chariot dans le texte.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT substr(DESCRIPTION, chr(10)) FROM GF_DOSSIER WHERE POSTE = '289002';
    Edit : Pas SUBSTR mais bien REPLACE
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT REPLACE(DESCRIPTION, chr(10)) FROM GF_DOSSIER WHERE POSTE = '289002';

  5. #5
    Membre confirmé Avatar de rvfranck
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 746
    Points : 534
    Points
    534
    Par défaut
    Citation Envoyé par roman67 Voir le message
    Ce n'est pas une longeur de linesize, les données sont sur deux lignes dans la table...

    Merci pour votre aide!

  6. #6
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Il se peut qu'il y ait un problème de vocabulaire
    Exemple : Les données sont sur 4 lignes dans la table..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    SQL> create table wmc_test (adr varchar2(500));
     
    Table created.
     
    SQL> insert into wmc_test 
      2  values ('Nom Prenom
      3  Adresse 1
      4  Adresse 2
      5  Postal Ville');
     
    1 row created.
     
    SQL> select * from wmc_test;
     
    ADR
    ----------------------------------------------------------------
    Nom Prenom
    Adresse 1
    Adresse 2
    Postal Ville
    Dans ce cas j'aurais du dire : Les données sont sur 4 lignes dans le champ adr de la table, mais ceux qui postent peuvent se tromper dans l'emploi de certains mots.

  7. #7
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    MCM t'as raison est c'est bien d'analyser la demande aussi sur cet angle.
    Par contre j'ai un peu du mal avec la requête proposé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT substr(DESCRIPTION, chr(10)) FROM GF_DOSSIER WHERE POSTE = '289002';

  8. #8
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 388
    Points
    18 388
    Par défaut
    Je pense que McM a pensé "replace" et écrit "substr".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT replace(DESCRIPTION, chr(10), ' ') FROM GF_DOSSIER WHERE POSTE = '289002';

  9. #9
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Citation Envoyé par Waldar Voir le message
    Je pense que McM a pensé "replace" et écrit "substr".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT replace(DESCRIPTION, chr(10), ' ') FROM GF_DOSSIER WHERE POSTE = '289002';
    Ou Instr mais je n'aime pas me substituer aux personnes. Je pense que seul McM saurait nous le dire. L'important est plutôt que la solution de l'autre interprétation figure ici.

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    401
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 401
    Points : 120
    Points
    120
    Par défaut
    Peut être que la fonction PIVOT serait appropriée ?

  11. #11
    Membre confirmé Avatar de rvfranck
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 746
    Points : 534
    Points
    534
    Par défaut
    Citation Envoyé par mnitu Voir le message
    MCM t'as raison est c'est bien d'analyser la demande aussi sur cet angle.
    Par contre j'ai un peu du mal avec la requête proposé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT substr(DESCRIPTION, chr(10)) FROM GF_DOSSIER WHERE POSTE = '289002';
    Où est passé roman67 pour nous dire exactement ce qu'il en est?

  12. #12
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Citation Envoyé par Waldar Voir le message
    Je pense que McM a pensé "replace" et écrit "substr".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT replace(DESCRIPTION, chr(10), ' ') FROM GF_DOSSIER WHERE POSTE = '289002';
    Exact.
    Désolé, mais je n'ai pas beaucoup de temps à passer par ici.. trop de boulot..
    Mais j'aime ça

    Vu qu'il n'y a pas de réponse du posteur, ça ne sert à rien de continuer à faire des réponses.

Discussions similaires

  1. [2008] Une ligne sur deux lignes ?
    Par Tankian dans le forum SSRS
    Réponses: 4
    Dernier message: 24/02/2011, 15h52
  2. Réponses: 6
    Dernier message: 27/01/2011, 16h09
  3. [XSL:FO] fusionner une cellule sur deux lignes.
    Par Luc Hermitte dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 03/07/2008, 11h33
  4. Réponses: 3
    Dernier message: 13/02/2008, 10h10
  5. Texte de la barre de titre d'une Jframe sur deux lignes
    Par radzar dans le forum Agents de placement/Fenêtres
    Réponses: 17
    Dernier message: 01/09/2007, 01h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo