2010-04-23 6 views
0

deux questions aujourd'hui, je suis une abeille occupée et heureusement j'ai une communauté génial à ma disposition!T-SQL Syntaxe Question Sinon si logique de style

Ma question ici est la suivante:

J'ai un domaine que je dois mettre à jour à partir des données existantes sur le terrain.

If Gender = F then foo = 1 

If Gender = M then foo = 2 

If Gender = Male then foo = 2 

If Gender = Female then foo = 1 

If Gender is not above then foo = 3 

Voici ce que j'ai:

update EmailAddresses 
set Priority1 = '1' 
where GENDER__C = 'Female' 

update EmailAddresses 
set Priority1 = '2' 
where GENDER__C = 'Male' 

update EmailAddresses 
set Priority1 = '1' 
where GENDER__C = 'F' 

update EmailAddresses 
set Priority1 = '2' 
where GENDER__C = 'M' 

update EmailAddresses 
set Priority1 = '3' 
where GENDER__C not in (select 'Female', 'Male', 'F', 'M') 

Toute aide très appréciée! Et son vendredi !! Whoo Hoo

+0

de Nevermind. Les réponses sont arrivées pendant que je rédigeais ce commentaire. –

Répondre

3
update EmailAddresses set 
    Priority1 = case GENDER__C 
     when 'Female' then 1 
     when 'F' then 1   
     when 'Male' then 2 
     when 'M' then 2 
     else 3 end 
+0

Vous diamant, souvenu pour la prochaine fois! Avoir un bon compagnon de week-end. – Yoda

+2

Si vous avez trouvé la réponse utile, un upvote et d'accepter la réponse serait apprécié;) –

+0

Bien sûr, procédure standard, l'attente de dix min est légèrement ennuyeux sur l'acceptation :) – Yoda

4

Modifier à une instruction CASE:

UPDATE EmailAddresses 
SET Priority1 = Case 
    When GENDER_C IN ('Female', 'F') Then '1' 
    When GENDER_C IN ('Male', 'M') Then '2' 
    Else '3' 
End 
FROM EmailAddresses