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 :

Découper chaîne de caractères - séparateur ";"


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2017
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2017
    Messages : 24
    Par défaut Découper chaîne de caractères - séparateur ";"
    Bonsoir,

    J'ai un champs qui contient des chaines de caractères séparé par un ";". Voici un petit extrait des données de mon champs que j'ai appelé V (sachant que l'ID de cette ligne =1) :
    Nom : Capture.PNG
Affichages : 15798
Taille : 1,1 Ko

    Ce que je souhaiterai c'est avoir mon champs de cette manière :
    ID CHAMPS V
    1 10w40
    1 10w50
    1 5w30
    1 5w40

    J'aimerai répéter l'opération pour tous les autres ID que j'ai dans mon table.

    J'ai quelques petites bases en SQL mais sur ça je bloque un peu.


    Merci d'avance pour l'aide que vous m'apporterez

  2. #2
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 229
    Par défaut
    Voici un début, à toi de compléter.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select id, substr(col2, 1, instr(col2, ';')-1 ), substr(col2,  instr(col2, ';')+1 , 999999) from ma_table

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2017
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2017
    Messages : 24
    Par défaut Merci tbc92
    Déjà je voulais te remercier tbc92 pour ton aide.

    J'ai complété la requête SQL que tu m'as envoyé et j'obtiens bien la séparation que je souhaites, c'est top encore merci.

    Le résultat que j'obtiens est le suivant:
    Nom : Capture.PNG
Affichages : 15750
Taille : 1,7 Ko


    Je souhaiterai mettre les résultats dans un seul champs qui s'appellera V tout en gardant le même ID, mais est-ce c'est possible de réaliser cela sous SQL
    ID CHAMPS V
    1 5w40
    1 10w40
    1 10w50
    1 5w30

    Je souhaiteria faire un order by par la suite de ma colonne V c'est pour cela que au final je souhaite avoir les resultat dans un seul champs.

    Merci d'avance pour vos réponses

  4. #4
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 953
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 953
    Par défaut
    Citation Envoyé par Cookingya Voir le message
    Je souhaiterai mettre les résultats dans un seul champs qui s'appellera V tout en gardant le même ID, mais est-ce c'est possible de réaliser cela sous SQL
    ID CHAMPS V
    1 5w40
    1 10w40
    1 10w50
    1 5w30
    Par exemple :
    https://www.developpez.net/forums/d1...r/#post6084662

    Sinon je ne pense pas que ce soit utile de créer 15 posts qui tournent autour du même sujet.
    Expliquer clairement votre besoin plutôt que de découper en plein de petits bouts qui ont tendance à se contredire...

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2017
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2017
    Messages : 24
    Par défaut Merci skuatamad
    Je voulais vraiment vous remercier pour le lien vers ce post qui correspond très bien à mon problème.

    Je voudrais savoir où insérer un update ? (enfin si c'est possible)

    Je voudrais faire un update de ma colonne NORMES car à la base les données de cette colonne sont comme cela (à travers ma requête je test un exemple, comme cette exemple fonctionne je voudrais faire un update complet sur ma colonne normes):
    Nom : Capture1.PNG
Affichages : 15709
Taille : 1,4 Ko

    Je souhaiterai que toutes les données soit comme ceci à travers la requête que j'ai réalisé , d'ou mon besoin de rajouter un update:
    Nom : Capture.PNG
Affichages : 15725
Taille : 1,7 Ko

    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
    with t as (
    select '1' as ID, '5W40;10W40;10W50;5W30' as NORMES from DUAL
    )
    select t.ID, x.column_value as NORMES
      from t
     cross join table(
                  cast(multiset(
                           select substr( ';'||NORMES||';',
                                          instr( ';'||NORMES||';', ';', 1, rownum )+1,
                                          instr( ';'||NORMES||';', ';', 1, rownum+1 )
                                                 -instr( ';'||NORMES||';', ';', 1, rownum )-1
                                         )
                             from dual
                          connect by level <= length(NORMES)-length(replace(NORMES,';',''))+1
                                ) as sys.odcivarchar2list )
                        ) x
     
    ORDER BY NORMES;

    Merci d'avance pour vos réponses
    Images attachées Images attachées   

  6. #6
    Membre Expert
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Février 2012
    Messages
    652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Distribution

    Informations forums :
    Inscription : Février 2012
    Messages : 652
    Par défaut
    Comme évoqué par skuatamad, les questions et les posts s'empilent sans qu'il n'y ait de cohérence apparente.
    La réponse à votre question se trouve dans les multiples réponses que vous avez pu obtenir au travers de vos différents posts, il suffit juste d'assembler le tout de façon cohérente.

Discussions similaires

  1. Réponses: 37
    Dernier message: 02/02/2015, 09h15
  2. Réponses: 2
    Dernier message: 01/12/2013, 19h03
  3. Réponses: 2
    Dernier message: 12/04/2011, 14h37
  4. Réponses: 12
    Dernier message: 08/08/2008, 11h03
  5. Réponses: 6
    Dernier message: 08/08/2006, 09h14

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