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

 Oracle Discussion :

Tri en fonction d'un champ qui devient une cle


Sujet :

Oracle

  1. #1
    Membre habitué
    Inscrit en
    Septembre 2008
    Messages
    261
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 261
    Points : 164
    Points
    164
    Par défaut Tri en fonction d'un champ qui devient une cle
    J'ai une table avec pas mal de données. De celles-ci sont extraites des données qui vont enrichir deux nouvelles tables.
    Pour prendre une image, l'une contiendrait des villes et l'autre des pays. Le problème est qu'il existe des doublons dans celle d'origine. Du coup, mon insert plante.

    Quelqu'un verrait comment solutionner le truc ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    INSERT INTO TB_LOCATION (GROUP_CODE)
    SELECT CODE_GRP
      FROM VALIDATION_CODES
     WHERE VALIDATION_CODES.app= 'test'
       and VALIDATION_CODES.CODE_GRP IS NOT NULL;
    Merci.

  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
    Select Distinct ...

  3. #3
    Membre habitué
    Inscrit en
    Septembre 2008
    Messages
    261
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 261
    Points : 164
    Points
    164
    Par défaut
    Salut, je l'avais zappe dans le post du dessus.
    Le distinct passe sur les id je suppose.

    Ca le fait donc pas.

    En gros, je me sers d'une colonne de la pre;i6re table comme id d'une seconde. Le hic, c'est qu'elle a parfois la meme valeur, va savoir pourquoi, du coup, je veux choper qu'une occurence
    pour la sauvegarder dans la nouvelle table

    OK, ca le fait
    j'avais une seconde clause qui fausse le truc, quand ca veut pas
    je l'avais tente il y a bien une heure le distinct

  4. #4
    Membre habitué
    Inscrit en
    Septembre 2008
    Messages
    261
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 261
    Points : 164
    Points
    164
    Par défaut
    Dans la continuite, comment compter le nombre d'occurence de '.' dans un varchar, et aussi pourquoi mon second insert ne marche pas. Il s'agit de la seconde table.

    Dans la premiere colonne, il me faut le varchar sans les '.' et dans la derniere faut que je sauvegarde le nombre de '.' avant suppression
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    INSERT INTO TB_LOCA  (LOC_CODE, REF_LOC_GRP_CODE, 
    LOC_CODE_LENGTH 
    )
    SELECT 
    trim(trailing '.' from code), 
    CODE_GRP, LENGTH(REPLACE(code, '.', '')  )  
    FROM VALIDATION_CODES
    WHERE VALIDATION_CODES.application = 'test'

  5. #5
    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
    Une solution parmi tant d'autres
    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
     
    Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 
    Connected as mni
     
    SQL> 
    SQL> With data As (
      2    Select '123.456.789' val from dual
      3  )
      4  Select val,
      5         replace(val,'.') val_sans_point,
      6         length(val) - length(replace(val,'.')) nb_point
      7    From data
      8  /
     
    VAL         VAL_SANS_POINT   NB_POINT
    ----------- -------------- ----------
    123.456.789 123456789               2
     
    SQL>

  6. #6
    Membre habitué
    Inscrit en
    Septembre 2008
    Messages
    261
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 261
    Points : 164
    Points
    164
    Par défaut
    ok merci, j'ai fait autrement.

    longueur de la chaine - occurence du point

    Je fais un insert base sur un select
    Le souci est que la colonne 2, cle etrangere peut etre null, mais je ne parviens pas a le faire.
    Les record avec cette colonne a null plantent
    Si je les passe toutes explicitement a null, cela passe

    Du coup, je voudrais savoir s'il y a moyen de faire une sorte de if ou un ...? :
    la peut etre que je me fais des films
    mais bon je suis pas fan de pl sql

    bon j'ai utilise un when, et ca l efait pour l'histoire

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/12/2014, 20h08
  2. [DOM] appeler une fonction via son nom (qui est une string)
    Par elekis dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 15/07/2008, 14h06
  3. [MySQL] Appliquer une fonction sur un champ lors d'une requête
    Par Jérémy197 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 13/08/2006, 14h29
  4. Regrouper une sélection en fonction d'un champ et d'une date
    Par 12_darte_12 dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 29/03/2006, 18h12
  5. [VB.NET] une chaine de caractère qui devient une propriete
    Par lucie.houel dans le forum ASP.NET
    Réponses: 8
    Dernier message: 20/09/2005, 15h10

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