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

Requêtes PostgreSQL Discussion :

Utilisation de la variable FOR dans le formatage d"une concaténation


Sujet :

Requêtes PostgreSQL

  1. #1
    Membre actif

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2011
    Messages
    370
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 370
    Points : 251
    Points
    251
    Par défaut Utilisation de la variable FOR dans le formatage d"une concaténation
    Bonjour,

    je veux faire ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    LOOP 
    FOR i = 1 TO 104 -- numéro de département
    	LOOP
    	FOR j = 1 TO 99999 -- numero d'utilisateur
    	varcodetiers = '99' || i || '0???' || j;
    	SELECT numbenef FROM rhabitude WHERE codetiers = varcodetiers
    Le problème est que mon codetiers est au format 99ddduuuuu. Il faut donc que je transforme le 1 du i en 001 et le 1 du j en 00001 pour former mon codetiers en 9900100001....
    Est ce possible?

    Cordialement,
    vandman

  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
    Pour commencer, les boucles FOR sont une mauvaise idée, en SQL on essaie de rester en SQL le plus longtemps.

    Ça tombe bien, PostgreSQL fournit tout ce dont vous avez besoin !

    Il y a deux méthodes pour parvenir à vos fins, je mets les deux dans la même requête mais je pense que la seconde est plus rapide :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    With num (nm) as
    (
    select generate_series(1, 99999)
    )
        select '99' || to_char(n1.nm, 'fm000') || to_char(n2.nm, 'fm00000') as m1
             , to_char(99 * 1e8 + n1.nm * 1e5 + n2.nm, 'fm0000000000')      as m2
          from num as n1
    cross join num as n2
         where n1.nm <= 104;

Discussions similaires

  1. [AC-2007] Récupération variable date dans toute la colonne d'une table
    Par JDev_ dans le forum VBA Access
    Réponses: 8
    Dernier message: 18/05/2012, 10h49
  2. Utilisation de la variable self dans les méthodes
    Par sliderman dans le forum Général Python
    Réponses: 2
    Dernier message: 19/11/2007, 01h20
  3. Réponses: 2
    Dernier message: 17/09/2005, 17h43
  4. Réponses: 1
    Dernier message: 27/07/2005, 17h08
  5. Utilisation d'une Variable(Vb) dans d'autre language
    Par cach dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 22/02/2005, 12h00

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