Précédent   Forum du club des développeurs et IT Pro > Bases de données > Langage SQL
Langage SQL Forum d'entraide sur le langage SQL et sur les questions liées à la conception de schéma (DDL). Cours SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 05/01/2013, 21h36   #1
Ryadus
Futur Membre du Club
 
Inscription : mars 2003
Messages : 96
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 96
Points : 18
Points : 18
Envoyer un message via MSN à Ryadus
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.
Ryadus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2013, 09h39   #2
islamov2000
Membre chevronné
 
Avatar de islamov2000
 
Homme islamov islamov
Ingénieur d'études & developpement en informatique
Inscription : septembre 2007
Messages : 465
Détails du profil
Informations personnelles :
Nom : Homme islamov islamov
Localisation : Algérie

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

Informations forums :
Inscription : septembre 2007
Messages : 465
Points : 642
Points : 642
Envoyer un message via Yahoo à islamov2000 Envoyer un message via Skype™ à islamov2000
je suis sous orale, mais je pense tu trouveras l'equivalent en SQL serveur.

Code :
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.
islamov2000 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 06/01/2013, 11h31   #3
Ryadus
Futur Membre du Club
 
Inscription : mars 2003
Messages : 96
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 96
Points : 18
Points : 18
Envoyer un message via MSN à Ryadus
Citation:
Envoyé par islamov2000 Voir le message
je suis sous orale, mais je pense tu trouveras l’équivalent en SQL serveur.

Code :
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 :
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?
Ryadus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2013, 13h32   #4
islamov2000
Membre chevronné
 
Avatar de islamov2000
 
Homme islamov islamov
Ingénieur d'études & developpement en informatique
Inscription : septembre 2007
Messages : 465
Détails du profil
Informations personnelles :
Nom : Homme islamov islamov
Localisation : Algérie

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

Informations forums :
Inscription : septembre 2007
Messages : 465
Points : 642
Points : 642
Envoyer un message via Yahoo à islamov2000 Envoyer un message via Skype™ à islamov2000
tu peux compléter la requête comme suit :

Code :
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.
islamov2000 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 06/01/2013, 14h30   #5
Ryadus
Futur Membre du Club
 
Inscription : mars 2003
Messages : 96
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 96
Points : 18
Points : 18
Envoyer un message via MSN à Ryadus
Merci, Exactement ce que je voulais.
Ryadus est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 09h58.


 
 
 
 
Partenaires

Hébergement Web