tblCust
Gender
Male
Female
Male
Male
Female
并且想要更新这样的代替男性想要设置女性而代替女性想要设置男性。但如果我更新说女性对男性。
update tblCust set
Gender = 'Male'
where Gender = 'Female'
所有行现在都是男性,因此我忘记了最初是女性和最初是男性的数据。
我该如何解决这个问题?
答案 0 :(得分:3)
不能分两步完成,因为更新一种类型会影响另一种类型。
您需要使用case
语句在一个查询中更新这两种类型:
update tblCust set
gender = case gender when 'Female' then 'Male' else 'Female' end
如果你有其他性别,你需要稍微改进一下:
update tblCust set
gender = case gender
when 'Female' then 'Male'
when 'Male' then 'Female'
else gender end -- leave unchanged if neither Male nor Female
答案 1 :(得分:0)
这可能就是这样......它很容易交换
Update tblCust Set Gender='M' WHERE Gender='Male';
Update tblCust Set Gender='Male' WHERE Gender='Female';
Update tblCust Set Gender='Female' WHERE Gender='M';