8

我有两张桌子,

数据库 1:

表格1:

  • ID -001(整数)

  • 名称 -xxx(varchar)

  • 男性 -0(位)

  • 女 1(位)

数据库 2:

表 2:

  • ID -1(整数)

  • Ca.Name-yyy (varchar)

  • 性别 - M 或 F (varchar)

这些是我的桌子。我想将database2,table 2中的数据更新到database1,table1。所以我创建了更新查询。但我对 Gender 字段有疑问

Select 'UPDATE T1
 SET T1.MALE ='+ CASE WHEN r.Gender = 'M' THEN 0 ELSE 1 END

 FROM T2 As r

在下面的代码中,我加注星标的内容我怀疑如何在这里使用 if 语句。任何人都明白纠正我的问题?

4

2 回答 2

6

用于case when此目的。

关注这个问题:

SQL Server:CASE WHEN OR THEN ELSE END => 不支持 OR

CASE  
  WHEN GENDER='M' THEN 0 
  ELSE 1 
END 

这可能是你的情况。

有关更多语法详细信息:CASE (Transact-SQL)

于 2013-04-13T05:28:19.017 回答
1

同样,您需要使用CASE WHEN. 查询如下所示:

UPDATE T1 
SET T1.MALE = CASE WHEN T2.caname = 'm' THEN 0 ELSE 1 END,
    T1.female = CASE WHEN T2.caname = 'm' THEN 1 ELSE 0 END  // you also need update this otherwise a person would end up with two genders :)
FROM TABLE1 T1
INNER JOIN table2 T2 ON T2.ID = T1.ID

SQL 小提琴演示:

于 2013-04-13T06:38:25.680 回答