我有两张桌子,
数据库1:
表1:
Id -001(int)
名称-xxx(varchar)
男性-0(位)
女性1(位)
数据库2:
表2:
Id -1(int)
Ca.Name-yyy(varchar)
性别 - M或F(varchar)
这些是我的表格。我想将数据库2,表2中的数据更新为database1,table1。所以我创建更新查询。但是我对性别领域有问题
Select 'UPDATE T1
SET T1.MALE ='+ CASE WHEN r.Gender = 'M' THEN 0 ELSE 1 END
FROM T2 As r
在下面的代码中,我主演的内容我怀疑如何在这里使用if语句。有谁理解纠正我的问题?
答案 0 :(得分:4)
为此目的使用case when
。
关注这个问题:
SQL Server: CASE WHEN OR THEN ELSE END => the OR is not supported
CASE
WHEN GENDER='M' THEN 0
ELSE 1
END
这可以是你的情况。
有关更多语法详细信息:CASE (Transact-SQL)
答案 1 :(得分: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