【问题标题】:UPDATING records in a column based on a condition of another column根据另一列的条件更新一列中的记录
【发布时间】:2016-09-12 17:24:51
【问题描述】:

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

非常感谢

【问题讨论】:

    标签: sql sql-server


    【解决方案1】:

    您可以使用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;
    

    【讨论】:

      【解决方案2】:
      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
      

      【讨论】:

        【解决方案3】:

        试试这个:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-07-13
          • 1970-01-01
          相关资源
          最近更新 更多