Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1771 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [SQLSERVER]update + case

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[SQLSERVER]update + case

n°2018692
Profil sup​primé
Posté le 24-08-2010 à 14:08:18  answer
 

Bonjour :d
 
J'ai une requête comme ça:

Code :
  1. UPDATE updated_profiles
  2. SET last_updated = b.first_request
  3. ,category1 = CASE WHEN (b.category1 IS NULL) THEN a.category1 ELSE b.category1 END
  4. ,category1_perc = CASE WHEN (b.category1 IS NULL) THEN a.category1_perc ELSE b.category1_perc END
  5. ,category2 = CASE WHEN (b.category1 IS NULL) THEN a.category2 ELSE b.category2 END
  6. ,category2_perc = CASE WHEN (b.category1 IS NULL) THEN a.category2_perc ELSE b.category2_perc END
  7. ,category3 = CASE WHEN (b.category1 IS NULL) THEN a.category3 ELSE b.category3 END
  8. ,category3_perc = CASE WHEN (b.category1 IS NULL) THEN a.category3_perc ELSE b.category3_perc END
  9. ...


Déja je mets des CASE et pas des IF parce que je n'y arrive pas  [:hades113]
mais ce n'est pas trop grave. Ce qui ne m'arrange pas, c'est que le check est toujours le même.
Donc je voudrais faire un truc du genre:

Code :
  1. CASE WHEN (b.category1 IS NULL)
  2. THEN
  3. SET category1 = a.category1,
  4. category1_perc = a.category1_perc
  5. ...
  6. ELSE
  7. SET category1 = b.category1,
  8. category1_perc = b.category1_perc
  9. END


 
Est-ce possible ?

mood
Publicité
Posté le 24-08-2010 à 14:08:18  profilanswer
 

n°2018699
Oliiii
Posté le 24-08-2010 à 14:38:02  profilanswer
 

Non je pense pas.
Par contre tu peux faire 2 updates:

Code :
  1. UPDATE xxx
  2. SET category1 = a.category1
  3. ...
  4. WHERE b.category1 IS NULL
  5.  
  6. UPDATE xxx
  7. SET category1 = b.category1
  8. ...
  9. WHERE b.category1 IS NOT NULL


Message édité par Oliiii le 24-08-2010 à 14:38:21
n°2018703
Profil sup​primé
Posté le 24-08-2010 à 14:56:54  answer
 

Sauf que mon FROM il fait 30 lignes :d
 
Je vais laisser comme ça alors, merci :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [SQLSERVER]update + case

 

Sujets relatifs
[SQLSERVER]group by[BO] Table comparison qui ne renvoie pas les update
[SQLSERVER]split et jointure ?[sqlserver]Gestion des dates
Trigger SQL sur colonne UpdateWhere case between […]
[RESOLU] mysql_query("UPDATE ce met à jour mais remplace au lieu...Probleme de chargement du ViewState avec Update Panel Ajax.
Update impossible PHP/ACCESS 
Plus de sujets relatifs à : [SQLSERVER]update + case


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR