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 :

Extraire avant un caractère précis


Sujet :

SQL Oracle

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Extraire avant un caractère précis
    bonjour

    la requête suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select NUMROUTE||' (PK maxi : '||max(local2)||' )' from G_NATUREVOIE where NUMROUTE IS NOT NULL group by numroute order by NUMROUTE
    me retourne ceci :

    RD 14 (PK maxi : 2476.297 )
    RD 77 (PK maxi : 2553.324 )
    VC 10 (PK maxi : 1356.17 )
    VC 101 (PK maxi : 1049.378 )
    VC 104 (PK maxi : 289.649 )
    VC 3 (PK maxi : 947.122 )
    VC 4 (PK maxi : 1228.835 )
    VC 6 (PK maxi : 670.385 )

    je souhaite extraire les valeurs de NUMROUTE, donc ce qui précède la parenthèse ouvrante. Je connais SUBSTR, mais je ne vois pas comment lui dire de prendre en compte un nombre de caractères variables

    merci de votre aide

    jean marc

  2. #2
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 460
    Points : 8 077
    Points
    8 077
    Par défaut
    Bonjour

    La fonction INSTR renvoie la position d'une sous-chaîne à l'intérieur d'une chaîne.
    Il suffit de la combiner à SUBSTR.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SUBSTR(la_chaine, 1, INSTR(la_chaine, '(' ) -1)
    Le -1 c'est pour reculer d'une position, sinon le résultat final contiendra aussi la parenthèse ouvrante.
    Consultant / formateur Oracle indépendant
    Certifié OCP 12c, 11g, 10g ; sécurité 11g

    Ma dernière formation Oracle 19c publiée sur Linkedin : https://fr.linkedin.com/learning/oracle-19c-l-administration

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Pomalaix Voir le message
    Bonjour

    La fonction INSTR renvoie la position d'une sous-chaîne à l'intérieur d'une chaîne.
    Il suffit de la combiner à SUBSTR.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SUBSTR(la_chaine, 1, INSTR(la_chaine, '(' ) -1)
    Le -1 c'est pour reculer d'une position, sinon le résultat final contiendra aussi la parenthèse ouvrante.
    bonjour

    merci pour cette solution qui me convient tout à fait

    JMM

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP 5.0] Comment extraire du texte se trouvant AVANT un caractère
    Par pierrot10 dans le forum Langage
    Réponses: 3
    Dernier message: 05/01/2009, 14h34
  2. Extraire chaine de caractère dans chaîne de caratère
    Par kornichon dans le forum Langage
    Réponses: 9
    Dernier message: 11/07/2007, 21h56
  3. Réponses: 1
    Dernier message: 22/06/2007, 12h48
  4. Réponses: 2
    Dernier message: 07/06/2007, 17h44
  5. parcourir une chaine et extraire depuis un caractère
    Par Dsphinx dans le forum Langage
    Réponses: 4
    Dernier message: 12/03/2007, 15h16

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