【问题标题】:Insert and alter data based on condition SQL Server根据条件 SQL Server 插入和更改数据
【发布时间】:2018-03-30 07:27:27
【问题描述】:

我目前有包含

的 Table1
 ID Gender
 1  m
 2  f
 3  f
 4  m
 5  f
 6  f

现在我希望将此数据插入到第二个表(表 2)中。但基本上我试图用“男性”和“女性”这两个词插入它。 因此,例如,当表 1 中的 Gender = 'm' 时,我想将 char 'Male' 插入到第二个表(table2)中,对于女性也是如此。

我创建了一些代码,例如

 UPDATE Table2
 SET 
 Gender =
 ( CASE WHEN Table1.Gender = 'm' THEN 'Male'
 WHEN Table1.Gender = 'f' THEN 'Female'
 ELSE 'N/a'
 END)

如果有帮助的话,我有一个 SQL Fiddle 架构 -

http://sqlfiddle.com/#!9/8a3080

谢谢

【问题讨论】:

    标签: sql sql-server insert sql-update case


    【解决方案1】:

    您可以通过使用Case 表达式来使用INSERT 语句而不是UPDATE

    INSERT INTO table2
           SELECT id,
                  CASE(Gender)
                      WHEN 'm'
                      THEN 'Male'
                      WHEN 'f'
                      THEN 'Female'
                  END
           FROM table1;
    

    结果(表 2):

    ID  Gender
    1   Male
    2   Female
    3   Female
    4   Male
    5   Female
    6   Female
    

    【讨论】:

      【解决方案2】:

      如果要在第二个表中插入行,请使用insert,而不是update

      insert into table2(id, gender)
          select t1.id,
                 (case when t1.gender = 'f' then 'female'
                       when t1.gender = 'm' then 'male'
                  end) as gender_expanded
          from table1 t1;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-28
        • 2013-05-04
        • 1970-01-01
        相关资源
        最近更新 更多