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

Langage SQL Discussion :

1 colonne, 3 mises à jour possibles


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 9
    Points : 7
    Points
    7
    Par défaut 1 colonne, 3 mises à jour possibles
    Bonjour,

    Est-il possible en 1 seule opération de mettre à jour une colonne selon 3 cas ?

    Je m'explique :

    Si cas1 alors tab1.col1 = A*B*C
    Si cas 2 alors tab1.col1 = A*B
    Si cas3 alors tab1.col1 = A*B*D
    Sachant que B et D sont issues d'une autre table.

    Je pensais à la fonction 'CASE When ' mais je n'arrive pas à l'écrire.

  2. #2
    Membre expérimenté
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Points : 1 403
    Points
    1 403
    Par défaut
    Sous quel SGBD es tu ?

  3. #3
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Quelque chose dans le genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    UPDATE laTable
    SET leChamp = (SELECT CASE WHEN aa THEN xx
                          CASE WHEN bb THEN yy
                          CASE WHEN cc THEN zz 
                          END
                   FROM ...
                   WHERE...)
    WHERE...

  4. #4
    Membre expérimenté
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Points : 1 403
    Points
    1 403
    Par défaut
    Sinon il y a aussi la solution du decode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    select dECODE ( dummy, 'a', 'a',  DECODE(dummy, 'b', 'b', 'reste'))
    from (select 'b' as dummy from dual)
    Change les valeur de select 'b' en select 'a'a pour voir.

    Bon ok je rentre à ma maison
    et je vais me faire

Discussions similaires

  1. Réponses: 3
    Dernier message: 29/07/2010, 16h27
  2. Réponses: 2
    Dernier message: 05/02/2007, 10h19
  3. [Excel] Mise à jour par colonnes
    Par Kamo76 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 04/12/2006, 16h34
  4. Mise à jour auto MIDlet possible ?
    Par infotron dans le forum Java ME
    Réponses: 7
    Dernier message: 27/07/2006, 14h18

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