基于SQL Server条件插入和更改数据

基于SQL Server条件插入和更改数据,sql,sql-server,insert,sql-update,case,Sql,Sql Server,Insert,Sql Update,Case,我目前有表1,其中包括 ID Gender 1 m 2 f 3 f 4 m 5 f 6 f 现在,我希望将这些数据插入第二个表(表2)。但基本上我是想用“男性”和“女性”来插入它。 例如,在表1中,当Gender='m'时,我想在第二个表(表2)中插入字符'Male',对于女性也一样 我创建了一些代码,例如 UPDATE Table2 SET Gender = ( CASE WHEN Table1.Gender = 'm' THEN 'Male' WHEN

我目前有表1,其中包括

 ID Gender
 1  m
 2  f
 3  f
 4  m
 5  f
 6  f
现在,我希望将这些数据插入第二个表(表2)。但基本上我是想用“男性”和“女性”来插入它。 例如,在表1中,当Gender='m'时,我想在第二个表(表2)中插入字符'Male',对于女性也一样

我创建了一些代码,例如

 UPDATE Table2
 SET 
 Gender =
 ( CASE WHEN Table1.Gender = 'm' THEN 'Male'
 WHEN Table1.Gender = 'f' THEN 'Female'
 ELSE 'N/a'
 END)
如果有帮助的话,我有一个SQL Fiddle模式-


谢谢

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

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;

通过使用
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