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 :

Update avec Condition If


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Inscrit en
    Mars 2003
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 109
    Points : 49
    Points
    49
    Par défaut Update avec Condition If
    Bonjour,

    Ça fait longtemps que je n'ai pas fait de SQL alors j'ai besoin de votre aide.
    J'aimerais faire un update avec conditions; mettre a jour une une colonne "Endroit" dépendant de la colonne "type".

    Endroit Type
    Maison 1
    Maison 2
    Maison 2
    Maison 3
    Maison 4

    Et je veux faire en sorte que lorsque:
    Type = 1 alors Endroit = Chambre
    Type = 2 alors Endroit = Salon
    Type = 3 alors Endroit = Cuisine
    Type = 4 alors Endroit = Jardin

    Tout pour être exécuté' sur une base de données SQL Server.

    Merci pour votre aide.

  2. #2
    Membre expérimenté
    Avatar de islamov2000
    Homme Profil pro
    Ingénieur d'études & developpement en informatique
    Inscrit en
    Septembre 2007
    Messages
    814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur d'études & developpement en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 814
    Points : 1 717
    Points
    1 717
    Billets dans le blog
    6
    Par défaut
    je suis sous orale, mais je pense tu trouveras l'equivalent en SQL serveur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    update la_table t set 
    nom = case 
     
    when t.Type = 1 then t.Endroit = 'Chambre'
    when t.Type = 2 then t.Endroit = 'Salon'
    when t.Type = 3 then t.Endroit = 'Cuisine'
    when t.Type = 4 then t.Endroit = 'Jardin'
    end
    d'avoir Pensé à voter positivement pour ceux qui vous ont aidés et surtout à mettre si le cas.
    ça encourage.

  3. #3
    Membre du Club
    Inscrit en
    Mars 2003
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 109
    Points : 49
    Points
    49
    Par défaut
    Citation Envoyé par islamov2000 Voir le message
    je suis sous orale, mais je pense tu trouveras l’équivalent en SQL serveur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    update la_table t set 
    nom = case 
     
    when t.Type = 1 then t.Endroit = 'Chambre'
    when t.Type = 2 then t.Endroit = 'Salon'
    when t.Type = 3 then t.Endroit = 'Cuisine'
    when t.Type = 4 then t.Endroit = 'Jardin'
    end
    Merci pour ta réponse islamov2000, j'ai essaye' ce qui suit sur une table test:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    UPDATE table
       SET 
          Endroit = case 
       When [Type] = '1' then 'Chambre'
       When [Type] = '2' then 'Salon'
       When [Type] = '3' then 'Cuisine'
       When [Type] = '4' then 'Jardin'
     
    end
    Ça a fonctionné mais, j'avais dans la colonne Endroit d'autre valeur que je ne voulais pas toucher, mais le code ci-dessus les a remplacé par 'NULL' car apparemment qd il ne trouve pas la condition qui va alors il remplace par NULL.

    Il n'y a pas un moyen d’éviter ça?

  4. #4
    Membre expérimenté
    Avatar de islamov2000
    Homme Profil pro
    Ingénieur d'études & developpement en informatique
    Inscrit en
    Septembre 2007
    Messages
    814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur d'études & developpement en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 814
    Points : 1 717
    Points
    1 717
    Billets dans le blog
    6
    Par défaut
    tu peux compléter la requête comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    UPDATE TABLE
       SET 
          Endroit = case 
       When [Type] = '1' then 'Chambre'
       When [Type] = '2' then 'Salon'
       When [Type] = '3' then 'Cuisine'
       When [Type] = '4' then 'Jardin'
    else Endroit 
     
    end
    d'avoir Pensé à voter positivement pour ceux qui vous ont aidés et surtout à mettre si le cas.
    ça encourage.

  5. #5
    Membre du Club
    Inscrit en
    Mars 2003
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 109
    Points : 49
    Points
    49
    Par défaut
    Merci, Exactement ce que je voulais.

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

Discussions similaires

  1. Petit défi SQL (Update avec condition)
    Par Angeldu74 dans le forum Langage SQL
    Réponses: 10
    Dernier message: 03/03/2009, 12h55
  2. Requete update avec condition
    Par how_much dans le forum Langage SQL
    Réponses: 5
    Dernier message: 13/01/2009, 13h45
  3. [VBA] update avec condition
    Par le_niak dans le forum VBA Access
    Réponses: 1
    Dernier message: 14/09/2007, 10h42
  4. update avec condition sur autre table
    Par allowen dans le forum Langage SQL
    Réponses: 5
    Dernier message: 01/04/2005, 15h02
  5. UPDATE avec condition sur d'autres tables
    Par guda dans le forum Langage SQL
    Réponses: 7
    Dernier message: 10/03/2005, 11h20

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