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 :

Concaténation de deux nombres en six chiffres


Sujet :

SQL Oracle

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 23
    Points : 14
    Points
    14
    Par défaut Concaténation de deux nombres en six chiffres
    Bonjour,

    J'ai deux nombres à concaténer mais j'ai un problème.
    Exemple :
    1er nombre 145
    2ème nombre 10

    j'aimerai avoir un nombre de 6 chiffres :
    Résultat 145010

    Comment faire ?

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Qu'avez-vous essayé ?

  3. #3
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select trim(to_char(145,'000') ) || trim ( to_char(10,'000')  )
    from dual

  4. #4
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 23
    Points : 14
    Points
    14
    Par défaut
    Impec Merci Bon WE

  5. #5
    Membre émérite Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Points : 2 845
    Points
    2 845
    Par défaut
    Salut !

    Si, comme tu le dis, c'est bien un nombre que tu veux en résultats (qui n'aura donc pas de "zéros non significatifs") :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    SQL> SELECT 145 * 1000 + 10
      2  FROM dual
      3  /
     
    145*1000+10
    -----------
         145010
     
    SQL>

    (c'est ma photo)
    Paku, Paku !
    Pour les jeunes incultes : non, je ne suis pas un pokémon...

    Le pacblog : http://pacmann.over-blog.com/

  6. #6
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Pas très efficace comme solution Jerome_Mtl :
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    declare
        n1   constant number(3) default 145;
        n2   constant number(3) default  10;
        n3   varchar2(6);
     
    begin
     
        dbms_output.put_line('Début : ' || to_char(sysdate, 'hh24:mi:ss'));
     
        for i in 1..1e8
        loop
          n3 := trim(to_char(n1,'000')) || trim (to_char(n2,'000'));
        end loop;
     
        dbms_output.put_line('Fin : ' || to_char(sysdate, 'hh24:mi:ss'));
     
        dbms_output.put_line('Début : ' || to_char(sysdate, 'hh24:mi:ss'));
     
        for i in 1..1e8
        loop
          n3 := to_char(n1 * 1e3 + n2, 'fm000000');
        end loop;
     
        dbms_output.put_line('Fin : ' || to_char(sysdate, 'hh24:mi:ss'));
    end;
    /
     
    Début : 15:21:04
    Fin   : 15:21:34
    Début : 15:21:34
    Fin   : 15:21:47

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Waldar Voir le message
    Pas très efficace comme solution Jerome_Mtl
    Pas étonnant avec la conversion en caractères et les trims, c'est sûr qu'il y a mieux.
    C'était juste une solution rapide en passant.

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

Discussions similaires

  1. Créer des nombres (non utilisés) à six chiffres
    Par gif003 dans le forum SAS Base
    Réponses: 2
    Dernier message: 18/12/2012, 21h39
  2. [WD11] Concaténation de deux nombres
    Par Math2012 dans le forum WinDev
    Réponses: 1
    Dernier message: 07/05/2012, 08h12
  3. Concaténation de deux tableaux
    Par mego dans le forum Langage
    Réponses: 6
    Dernier message: 19/11/2008, 11h52
  4. Concaténation de deux integer pour former une clé primaire
    Par stoukou dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 08/09/2005, 10h34
  5. Eviter deux nombres identiques dans un tirage aléatoire
    Par moon tiger dans le forum Pascal
    Réponses: 5
    Dernier message: 25/11/2002, 09h57

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