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 :

Je ne parviens pas à contruire ma requête


Sujet :

SQL Oracle

  1. #1
    Membre confirmé
    Homme Profil pro
    Analyste
    Inscrit en
    Août 2003
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste
    Secteur : Services de proximité

    Informations forums :
    Inscription : Août 2003
    Messages : 85
    Par défaut Je ne parviens pas à contruire ma requête
    Bonjour à tous,

    J'utilise SQL Developper et SQL PLUS.
    Je dois analyser une colonne number sans précision pour savoir si dans les enregistrement il y a au moins une données qui possède des virgules.
    Dans ce cas, j'extrais longueur maximal de la partie entière et de la partie décimale des données.
    Si aucun enregistrement ne possède de décimale alors je retourne uniquement la longueur max de la partie entière.

    Voici où j'en, suis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT
           max(Length(SUBSTR(ID_PROSP  ,1,INSTR(ID_PROSP  ,',')-1))) max1,
          max(Length(SUBSTR(ID_PROSP ,INSTR( ID_PROSP ,',')+1))) max2
          FROM TEST1
          WHERE rownum < 100 ;
    Ci-dessous les données de ma table test1 :
    0,11
    2578578
    0.698
    1.3

    Résultat de ma requête :
    max1 ; max2
    1 ; 7

    Alors que j'aimerais obtenir :
    max1 ; max2
    7 ; 3

    J'ai pensé à faire deux requêtes.
    Une qui recherche recherche les virgules et une autre si il n'y a pas de virgule
    Mais c'est pour appliquer sur des tables contenant plus de 100 000 enregistrements. Je suis embeté de devoir analyser deux fois la colonne. C'est pas trés optimisé.

    Comment dois-je modifier ma requête pour obtenir le résultat souhaité ?
    Pouvez-vous me mettre sur la voie ?

    Merci par avance à tous.
    Cordialement,
    Thierry.
    Comment dois-je modifier ma requête ?

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    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 454
    Par défaut
    Essayez ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    with test1 as
    (
    select       0.11 as nb from dual union all
    select 2578578          from dual union all
    select       0.698      from dual union all
    select       1.3        from dual
    )
    select max(length(trunc(nb)))    as p_ent,
           max(length(mod(nb, 1))-1) as p_dec
      from test1;
     
         P_ENT      P_DEC
    ---------- ----------
             7          3

  3. #3
    Membre confirmé
    Homme Profil pro
    Analyste
    Inscrit en
    Août 2003
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste
    Secteur : Services de proximité

    Informations forums :
    Inscription : Août 2003
    Messages : 85
    Par défaut
    Génial Waldar.
    C'est beaucoup plus simple que je le pensais.
    J'étais à l'ouest... je partais vers les requêtes imbriqués...
    Merci beaucoup

    Cordialement,
    Thierry

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

Discussions similaires

  1. Une requête que je ne parviens pas à trier
    Par renaud26 dans le forum Requêtes
    Réponses: 16
    Dernier message: 02/04/2008, 20h49
  2. Process inconnu que je ne parviens pas à killer
    Par HNT dans le forum Administration système
    Réponses: 5
    Dernier message: 06/07/2006, 16h55
  3. sql-serveur : qu'est-ce qui ne va pas dans cette requête ?
    Par isachat666 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 09/06/2006, 15h52
  4. [Oracle] Ne pas générer la requète a chaque fois.
    Par lechewal dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 09/06/2006, 11h20
  5. La fonction CurrentDb() ne fonctionne pas dans une requête
    Par Sébastien Le Goyet dans le forum Access
    Réponses: 8
    Dernier message: 24/11/2005, 17h46

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