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 Firebird Discussion :

Requête avec nom de champ variable


Sujet :

SQL Firebird

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de JP.NUAGE
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    777
    Détails du profil
    Informations personnelles :
    Âge : 83
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 777
    Par défaut Requête avec nom de champ variable
    Bonjour à tous

    Dans une table Firebird (Version 2.0), j'ai des champs portant les noms suivants

    M1, M2, M3.... jusqu'à M10

    En fonction d'un paramètre je voudrais modifier la valeur d'un champ donné, du style

    update TABLE set Mxx = coalesce(Mxx,0) + 4
    et en fonction de la valeur de xx je modifie l'un ou l'autre des champs

    Pour l'instant je me paluche 10 tests (if xx = 1 then.....). Pour 10 c'est encore vivable. Si j'ai un jour 50, ce sera moins drôle

    Existe-t-il une solution ?

    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Par défaut
    Salut

    Avec un EXECUTE STATEMENT c'est jouable.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      EXECUTE STATEMENT 'UPDATE TA_TABLE SET M' || CAST(FLD_NAME AS VARCHAR(2)) ||
        ' = COALESCE(' || CAST(FLD_NAME AS VARCHAR(2)) || ', 0) + 4';
    où FLD_NAME est le nom du champ passé en paramètre.

    @+ Claudius

  3. #3
    Membre éclairé
    Avatar de JP.NUAGE
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    777
    Détails du profil
    Informations personnelles :
    Âge : 83
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 777
    Par défaut
    I M P E C C A B L E ! Merci Cl@udius

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

Discussions similaires

  1. [AC-2003] Requête avec un nom de champ variable
    Par kervin dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 30/07/2013, 13h09
  2. Réponses: 5
    Dernier message: 10/02/2010, 14h11
  3. [SQL-Server] Problème requête avec nom de champs []
    Par sinople dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 30/11/2009, 15h17
  4. Pb : requete avec nom de champ variable renvoie le nom du champ
    Par Illecebrum dans le forum Développement
    Réponses: 3
    Dernier message: 08/12/2008, 19h17
  5. Requête avec nom de champ "variable"
    Par Pgs dans le forum Langage SQL
    Réponses: 2
    Dernier message: 25/07/2007, 10h25

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