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 :

Conception d'une expression régulière avec regexp_replace


Sujet :

SQL Oracle

  1. #1
    Membre éprouvé
    Avatar de Rony Rauzduel
    Homme Profil pro
    En formation Architecte logiciel
    Inscrit en
    Décembre 2008
    Messages
    638
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : En formation Architecte logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 638
    Points : 1 128
    Points
    1 128
    Par défaut Conception d'une expression régulière avec regexp_replace
    Bonjour,

    Merci par avance pour votre aide.

    J'aurai besoin de concevoir une expression régulière avec regexp_replace : il faudrait que cette dernière me retourne la fonction d’agrégat (avec la colonne) d'une liste d'expression d'une requête SQL.

    Par exemple la requête suivante :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    select count(0), max(nom), min(nom), avg(souh_remu), sum(id_cand) from rh_recr_candidat where id_soci = 3170;

    Doit me renvoyer count(0) max(nom) min(nom) avg(souh_remu) sum(id_cand)

    Les virgules doivent disparaître, doivent rester uniquement la fonction d'agrégat et la colonne.

  2. #2
    Membre éprouvé
    Avatar de Rony Rauzduel
    Homme Profil pro
    En formation Architecte logiciel
    Inscrit en
    Décembre 2008
    Messages
    638
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : En formation Architecte logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 638
    Points : 1 128
    Points
    1 128
    Par défaut
    Résolu.
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    select regexp_replace(
      regexp_substr('select count(0), max(nom), min(name), avg(souh_remu), sum(id_cand) from rh_recr_candidat where id_soci = 3170', 
      'select[[:space:]]*(.+)[[:space:]]*from',
                1, 1, null, 1),
               ',', '') as regexp_ from dual;

  3. #3
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 942
    Points : 4 363
    Points
    4 363
    Par défaut
    a. il y a forcément un espace après le SELECT et avant le FROM donc vous devriez mettre [[:space:]]+
    b. mieux vaut être case insensitive donc passer le paramètre 'i'
    c. votre expression ne supportera la présence de sous-requête que ce soit dans la partie SELECT ou comme sous-requête du FROM

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 24/05/2010, 13h15
  2. [RegEx] Une expression régulière avec un peu de tout
    Par JackBeauregard dans le forum Langage
    Réponses: 2
    Dernier message: 17/04/2007, 09h50
  3. Réponses: 1
    Dernier message: 09/12/2006, 10h13
  4. Réponses: 14
    Dernier message: 15/10/2006, 11h22
  5. utiliser une expression régulliere avec la methode getelementbyid
    Par rootdaoud dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 09/05/2006, 18h25

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