Синтаксис T-SQL Проблема Остальное, если логика стиля - PullRequest
0 голосов
/ 23 апреля 2010

два вопроса сегодня, я занятая пчела и, к счастью, в моем распоряжении прекрасное сообщество!

Моя проблема здесь такая:

У меня есть поле, которое мне нужно обновить на основе существующих данных поля.

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

Вот что у меня есть:

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')

Любая помощь высоко ценится! И это пятница! Ууууууу

Ответы [ 2 ]

4 голосов
/ 23 апреля 2010

Измените его на оператор 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
3 голосов
/ 23 апреля 2010
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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...