根据另一列的条件更新列中的记录

时间:2016-09-12 17:24:52

标签: sql sql-server

同样的方式IF语句在Excel中工作,我在SQL中有一个表,性别列下有空白字段。我希望根据标题栏填充男性或女性专栏...即更新表,如果先生,在性别记录下添加男性,如果小姐或女士,将女性添加到性别列 表名是Kimobase

     Title  Firstname    Lastname    Telephone  Title  Gender   More columns 
1    Mr     Adam             Smith         001    Mr
2    Mrs    Angela           Evans         002    Mrs
3    Mr     Bill             Towny         003    Mr
4    Miss   Dame             Beaut         004    Miss

我有兴趣按照以下方式对其进行转换

     Title  Firstname    Lastname    Telephone  Title  Gender   More columns 
1    Mr     Adam             Smith         001    Mr    M
2    Mrs    Angela           Evans         002    Mrs   F
3    Mr     Bill             Towny         003    Mr    M
4    Miss   Dame             Beaut         004    Miss  F

非常感谢

3 个答案:

答案 0 :(得分:2)

您可以使用case声明执行此操作:

update Kimobase
    set gender = (case when title in ('Mr') then 'M'
                       when title in ('Mrs', 'Miss', 'Ms') then 'F'
                  end)
    where gender is null;

答案 1 :(得分:1)

UPDATE table
  SET Gender = CASE
                WHEN Title IN ('Mrs','Miss','Ms') THEN 'F'
                WHEN Title = 'Mr' THEN 'M'
                ELSE ''
               END
WHERE LEN(COALESCE(Gender,'')) = 0

答案 2 :(得分:1)

试试这个:

UPDATE Kimobase
SET Gender = CASE 
             WHEN Title ='Mr' THEN 'M'
             WHEN Title IN ('Mrs','Miss') THEN 'F'
             ELSE ''
          END 
WHERE ISNULL(Gender,'')=''